1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| Function Calculage(DateN As String, DateCS As String) As String
If IsDate(DateN) = False Then Exit Function
If IsDate(DateCS) = False Then Exit Function
Dim jN1, jC1, mN1, mC1, aN1, aC1 As Integer
Dim Jage, Mage, Aage As Integer
Dim Jdif As Integer
jN1 = Day(DateN)
jC1 = Day(DateCS)
mN1 = Month(DateN)
mC1 = Month(DateCS)
aN1 = Year(DateN)
aC1 = Year(DateCS)
If aC1 < aN1 Then Exit Function
If aC1 = aN1 And mC1 < mN1 Then Exit Function
If aC1 = aN1 And mC1 = mN1 And jC1 < jN1 Then Exit Function
If aC1 = aN1 And mC1 = mN1 And jC1 = jN1 Then
Mage = 0
Jage = 0
Aage = 0
GoTo caline1
End If
'
' Permet de savoir le nombre de jours du mois (fevrier inclus)
Dim sdt1 As Date
Dim sdt2 As Date
sdt1 = DateValue("1" & "/" & mN1 & "/" & aN1)
sdt2 = DateValue("1" & "/" & mN1 + 1 & "/" & aN1)
Jdif = DateDiff("d", sdt1, sdt2)
'
'
If jC1 < jN1 Then
If mC1 > mN1 Then
Mage = (mC1 - 1) - mN1
'A vérifier : Jage = (jC1 + Jdif) - jN1 +1
Aage = aC1 - aN1
Jage = (jC1 + Jdif) - jN1
GoTo caline1
End If
If mC1 = mN1 Then
Aage = aC1 - 1 - aN1
Mage = (mC1 + 11) - mN1
Jage = (jC1 + Jdif) - jN1
GoTo caline1
End If
If mC1 < mN1 Then
Mage = (mC1 + 11) - mN1
Jage = (jC1 + Jdif) - jN1
Aage = aC1 - 1 - aN1
GoTo caline1
End If
End If
If jC1 >= jN1 Then
If mC1 > mN1 Then
Jage = jC1 - jN1
Mage = mC1 - mN1
Aage = aC1 - aN1
GoTo caline1
End If
If mC1 = mN1 Then
Jage = jC1 - jN1
Mage = mC1 - mN1
Aage = aC1 - aN1
GoTo caline1
End If
If mC1 < mN1 Then
Jage = jC1 - jN1
Mage = (mC1 + 12) - mN1
Aage = aC1 - 1 - aN1
GoTo caline1
End If
End If
caline1:
Calculage = Aage & " ans et " & Mage & " mois et " & Jage & " jours."
End Function |