Opération sur date dans Label ou TextBox

lebalme

XLDnaute Nouveau
Bonjour à tous,

Je cherche en vain une solution pour soustraire 2 dates au-delà du mois. Alors voilà, j'ai récupéré un code qui permet à partir d'un calendrier de sélectionner des dates : DateDebut et DateFin. Je récupère les 2 dates dans des labels par .caption et fait la différence dans un 3ème Label. Tout va très bien tant que je reste dans le même mois. C'est plus compliqué quand je veux faire la différence entre le 31/12 et le 14/07, dans quel cas le résultat est 31-14 = 17 ! ce qui ne tient pas compte des 6 mois qui séparent les dates.
Je suppose qu'il doit y avoir un problème de format dans mes Labels et ailleurs, mais suis bien incapable de dire comment m'en sortir.

Si quelqu'un connaît une solution je serais ravi d'en profiter.

A titre d'info je mets un bout de code

Merci d'avance,

Philippe

Code:
Private Sub Calendrier_Click()

' Choix d'une date sur le calendrier
If cboDateAValider.ListIndex = 0 Then
DateDebut.Value = Calendrier.Value
cboDateAValider.ListIndex = 1
Else
DateFin.Value = Calendrier.Value
End If
UserForm1.Date1.Caption = DateDebut.Value
UserForm1.Date2 = DateFin.Value
'Envoi le nombre d'heures entre les deux dates sur Userform1(Label Date3)
UserForm1.Date3.Caption = ((Val(DateFin.Value) - Val(DateDebut.Value))) * 24
End Sub

PS : je multiplie par 24 pour avoir des heures...
 

WILFRIED

XLDnaute Impliqué
Re : Opération sur date dans Label ou TextBox

Salut lebalme

un exemple vaut parfois tous les discours

si je comprend bien :

date debut : 12 fevrier 2006

date fin : 14 juillet 2006

tu obtiens 2

tu voudrait :
152
voici une formule qui pourrait t'aider :


=JOURS360(A1;A2;VRAI)
ou A1 :12/02/2006
ou A2 :14/07/2006

Par macro :

Sub leblame()
Range("C3").Value = Application.WorksheetFunction.Days360(Range("A1").Value, Range("A2").Value, True)
End Sub

A+
 

Bebere

XLDnaute Barbatruc
Re : Opération sur date dans Label ou TextBox

bonsoir Wilfried,Lebalme
avec datediff,"d" pour day,jour
date1 = CDate("01/01/2004")
date2 = CDate("02/01/2004")
heur = (DateDiff("d", date1, date2))
heur = heur * 24

pour ton cas essaye ce qui suit
vheure=datediff("d",cdate(DateDebut.Value),cdate(DateFin.Value))
UserForm1.Date3.Caption = vheure * 24
à bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 238
Membres
103 162
dernier inscrit
fcfg