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 Integer
'
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"))
NJMP = Format(CDate("01/" & MA & "/" & AA) - 1, dd)
If JN > JA Then JA = JA + NJMP: MA = MA - 1
If MN > MA Then MA = MA + 12: AA = AA - 1
Na = AA - AN: Nm = MA - MN: Nj = JA - JN
'If Na = 0 Then NbAn = "" Else NbAn = Str$(Na) & " an" & IIf(Na > 1, "s", "")
If Na = 0 Then NbAn = "" Else NbAn = Na & " an" & IIf(Na > 1, "s", "")
'If Nm = 0 Then Nbm = "" Else Nbm = IIf(Na > 0, IIf(Nj = 0, " et", ""), "") & Str$(Nm) & " mois"
If Nm = 0 Then Nbm = "" Else Nbm = IIf(Na > 0, IIf(Nj = 0, " et", ""), "") & Nm & " mois"
If Nj = 0 Then Nbj = "" Else _
'Nbj = IIf(Nm > 0, " et", IIf(Na > 0, " et", "")) & Str$(Nj) & " jour" & IIf(Nj > 1, "s", "")
Nbj = IIf(Nm > 0, " et", IIf(Na > 0, " et", "")) & Nj & " jour" & IIf(Nj > 1, "s", "")
DIFDATE = NbAn & Nbm & Nbj
Else
DIFDATE = ""
End If
End Function