Function StrDifDate$(ByVal Date1, ByVal Date2)
Dim DD1 As Date, DD2 As Date
Dim An&, Mois&, Jour&, Res$
On Error GoTo erreur
DD1 = Date1
DD2 = Date2
If Date1 <= Date2 Then
Date1 = DD1
Date2 = DD2
Else
Date1 = DD2
Date2 = DD1
End If
If Year(Date2) > Year(Date1) Then
An = (Year(Date2) - Year(Date1)) - IIf(Month(Date2) < Month(Date1), 1, _
IIf((Month(Date2) = Month(Date1)) And (Day(Date2) < Day(Date1)), 1, 0))
End If
Mois = Month(Date2) - Month(Date1) + 12 * (Year(Date2) - Year(Date1)) - _
IIf(Day(Date2) < Day(Date1), 1, 0) - (12 * An)
If Day(Date2) >= Day(Date1) Then
Jour = Day(Date2) - Day(Date1)
Else
Jour = DateSerial(Year(Date1), Month(Date1) + 1, 1) - Date1
Jour = Jour + Date2 - DateSerial(Year(Date2), Month(Date2), 1)
End If
If An > 0 Then Res = An & " an"
If An > 1 Then Res = Res & "s"
If Mois > 0 Then Res = Res & " " & Mois & " mois"
If Jour > 0 Then Res = Res & " " & Jour & " jour"
If Jour > 1 Then Res = Res & "s"
Res = Trim(Res)
If Res = "" Then Res = "0 jour"
StrDifDate = Res
Exit Function
erreur:
StrDifDate = ""
On Error GoTo 0
End Function