Salut le forum,
Salut les cracks,
pour ce que ça vaut, en VBA, bien sûr!
Certainement à peaufiner
Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim rCel1 As Range, rCel2 As Range
Dim iIdx%, lgD As Long, lgY As Long, lgM As Long
'
If IsDate([A1]) And IsDate([D1]) Then
Set rCel1 = IIf(CDate([A1]) <= CDate([D1]), [A1], [D1])
Set rCel2 = IIf(CDate([A1]) <= CDate([D1]), [D1], [A1])
lgM = DateDiff("m", CDate(rCel1), CDate(rCel2))
lgY = Int(lgM / 12)
lgM = lgM - (lgY * 12)
lgD = DateDiff("d", DateSerial(Year(CDate(rCel2)), Month(CDate(rCel2)), Day(CDate(rCel1))), CDate(rCel2))
If lgD < 0 Then _
lgM = IIf(lgM = 0, 11, lgM - 1): _
iIdx = DateDiff("d", DateAdd("m", -1, CDate(rCel2)), CDate(rCel2)): _
If lgM = 11 Then lgY = lgY - 1
MsgBox lgY & " ans " & lgM & " mois " & IIf(lgD < 0, iIdx + lgD, lgD) & " jours"
End If
'
End Sub
A+