Public Function EcartDate(ByVal DateDebut As Date, ByVal HeureDebut As Date, ByVal DateFin As Date, ByVal HeureFin As Date) As String Dim dStart As Date, dEnd As Date, lEcart As Long Dim lTempJ As Long, lTempH As Long, lTempM As Long Dim sJour As String, sHeure As String, sMinute As String sJour = Space(1) & "jour" sHeure = Space(1) & "heure" sMinute = Space(1) & "minute" dStart = DateDebut & Space(1) & HeureDebut: dEnd = DateFin & Space(1) & HeureFin lEcart = DateDiff("n", dStart, dEnd) Select Case lEcart Case Is < 2 EcartDate = lEcart & sMinute Case 2 To 59 EcartDate = lEcart & sMinute & "s" Case 60 EcartDate = "1" & sHeure Case 61 To 1439 lTempH = lEcart \ 24 If lTempH < 2 Then EcartDate = lTempH & sHeure Else _ EcartDate = lTempH & sHeure & "s" lTempM = lEcart Mod 24 If lTempM < 2 Then EcartDate = EcartDate & Space(1) & lTempM & sMinute Else _ EcartDate = EcartDate & Space(1) & lTempM & sMinute & "s" Case 1440 EcartDate = "1" & sJour Case Is > 1440 lTempJ = lEcart \ (24 * 60) If lTempJ < 2 Then EcartDate = lTempJ & sJour Else _ EcartDate = lTempJ & sJour & "s" lTempH = (lEcart - (lTempJ * (24 * 60))) \ 60 If lTempH < 2 Then EcartDate = EcartDate & Space(1) & lTempH & sHeure Else _ EcartDate = EcartDate & Space(1) & lTempH & sHeure & "s" lTempM = (lEcart - (lTempJ * (24 * 60))) Mod 60 * (((lEcart - (lTempJ * (24 * 60))) \ 60)) If lTempM < 2 Then EcartDate = EcartDate & Space(1) & lTempM & sMinute Else _ EcartDate = EcartDate & Space(1) & lTempM & sMinute & "s" End Select End Function Sub Exemple_Utilisation() Debug.Print EcartDate(#11/10/2006#, "19:58", #11/15/2006#, "21:00") '5 jours 1 heure 2 minutes Debug.Print EcartDate(#11/10/2006#, "19:58", #11/15/2006#, "20:59") '5 jours 1 heure 1 minute Debug.Print EcartDate(#11/10/2006#, "19:58", #11/15/2006#, "20:58") '5 jours 1 heure 0 minute Debug.Print EcartDate(#11/10/2006#, "19:58", #11/15/2006#, "22:00") '5 jours 2 heures 2 minutes Debug.Print EcartDate(#11/14/2006#, "20:00", #11/15/2006#, "21:01") '1 jour 1 heure 1 minute Debug.Print EcartDate(39036, 0.625, 39037, 0.625) '1 jour End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.