Function DIFDATE(Dated As Date, Datef As Date) As String
Dim AN As Integer, MN As Integer, JN As Integer
Dim AA As Integer, MA As Integer, JA As Integer
Dim Na As Integer, Nm As Integer, Nj As Integer
Dim NJMP As Variant
If Not IsNull(Dated) And Not IsNull(Datef) Then
AN = Val(Format(Dated, "yyyy"))
MN = Val(Format(Dated, "mm"))
JN = Val(Format(Dated, "dd"))
AA = Val(Format(Datef, "yyyy"))
MA = Val(Format(Datef, "mm"))
JA = Val(Format(Datef, "dd"))
NJMP = "01/" & MA & "/" & AA
NJMP = DateValue(NJMP) - 1
NJMP = Val(Format(NJMP, "dd"))
If JN > JA Then
JA = JA + NJMP
MA = MA - 1
End If
If MN > MA Then
MA = MA + 12
AA = AA - 1
End If
Na = AA - AN
Nm = MA - MN
Nj = JA - JN
If Na = 0 Then
NbAn = ""
Else
NbAn = Str$(Na) & " an" & IIf(Na > 1, "s", "")
End If
If Nm = 0 Then
Nbm = ""
Else
Nbm = IIf(Na > 0, ", ", "") & Str$(Nm) & " mois"
End If
If Nj = 0 Then
Nbj = ""
Else
Nbj = IIf(Nm > 0, " et ", "") & Str$(Nj) & " jour" & IIf(Nj > 1, "s", "")
End If
DIFDATE = NbAn & Nbm & Nbj
Else
DIFDATE = ""
End If
End Function