=(B2-A2+1)*12/365,2425
j'ai pas comprisBonjour, FDJR_91.
Alors on fait la gueule, ce matin ?
Nombre de mois = nombre de jours divisé par nombre de jours par mois (entre 28 et 31 chez nous).
Oui, pas bien réveillé,Re,
1° On dit bonjour.
2° Le mois n'est pas une unité : le nombre de jours d'un mois varie entre 28 et 31.
La différence entre les deux dates (attention aux intervalles) donnera un nombre de jours, qu'i faudra diviser par un nombre que vous aurez choisi comme nombre de jours moyen dans un mois.
(17/7/2021-31/03/21+1)/30,4375 =3.58... mois
PS : 30.4375 =365,25/12
Pourriez-vous me saisir la formule dans le tableau ci-joint ?
Merci à vous
avec plaisir ! en tout cas merci pour votre aideRe,
Oui, bien sûr.
Donnez-moi votre adresse : je vous l'apporte avec un p'tit café et deux croissants...
=DuréeEnClair(B2-A2+1)
Function DuréeEnClair(ByVal DuRest As Double, Optional ByVal OPé As Long = -1) As String
Dim U As Long, DuUnit As Double, NbUnit As Long, Trad As String, Compter As Boolean, K As Long
For U = 1 To 6
If DuRest = 0 Then Exit For
If OPé > 0 And U > OPé Then Exit For
DuUnit = Choose(U, 365.2425, 30.436875, 7, 1, 1 / 24, 1 / 1440)
NbUnit = Int(DuRest / DuUnit)
If NbUnit > 0 Then
If OPé <= 0 Then Compter = True
If Trad <> "" Then
If DuréeEnClair <> "" Then
DuréeEnClair = DuréeEnClair & ", " & Trad
Else
DuréeEnClair = Trad: End If
End If
Trad = NbUnit & " " & Choose(U, "an", "mois", "sem.", "jour", "heure", "min")
If NbUnit * Choose(U, 1, 0, 0, 1, 1, 0) > 1 Then Trad = Trad & "s"
DuRest = DuRest - DuUnit * NbUnit: End If
If Compter Then K = K - 1: If K < OPé Then Exit For
Next U
If Trad <> "" Then
If DuréeEnClair <> "" Then
DuréeEnClair = DuréeEnClair & " et " & Trad
Else
DuréeEnClair = Trad: End If
End If
If OPé > 0 And DuréeEnClair = "" Then DuréeEnClair = "Moins d'1 " _
& Choose(OPé, "an", "mois", "sem.", "jour", "heure", "min")
End Function