Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Calculer la différence entre deux dates en mois

flo189

XLDnaute Occasionnel
Bonjour à tous,

Je souhaite calculer la différence entre deux dates en mois.

Exemple sur le fichier ci-joint, je souhaite avoir en D2 la différence en nombre de mois entre C2 et B2.
 

Pièces jointes

  • Classeur1.xlsx
    8.7 KB · Affichages: 7

Dranreb

XLDnaute Barbatruc
Bonjour.
Pour calculer un nombre entier historique de mois administratifs écoulés entre deux dates particulières considérées, DATEDIF convient. Mais pour calculer une vraie durée en mois moyens toujours identique pour une certaine durée en jours obtenue par différence de deux dates quelles qu'elles soient, le coefficient que j'applique personnellement est celui qui résulte de la durée entière en jours de 400 ans définie par le calendrier, soit 146097 jours, divisée par 400 soit 365,2425 jour par ans, sur 12 mois soit 30,436875 jours par mois.
 

vgendron

XLDnaute Barbatruc
Hello le fil

j'ai retrouvé ca dans ma besace
en adaptant le retour de la fonction, on peut avoir juste le nombre de mois

VB:
Function Age(d1 As Date, Optional d2) As String

If IsMissing(d2) Then d2 = Now()

Dim A&, m&, s&, j&
    If (d1 > 60) * (d1 <= d2) Then
        Do While DateSerial(Year(d1) + A + 1, Month(d1), Day(d1)) < d2: A = A + 1: Loop
        Do While DateSerial(Year(d1) + A, Month(d1) + m + 1, Day(d1)) < d2: m = m + 1: Loop
        Do While DateSerial(Year(d1) + A, Month(d1) + m, Day(d1) + (s + 1) * 7) < d2: s = s + 1: Loop
        Do While DateSerial(Year(d1) + A, Month(d1) + m, Day(d1) + s * 7 + j + 1) < d2: j = j + 1: Loop
        Age = IIf(A, A & " an" & IIf(A > 1, "s", "") & " ", "") & IIf(m, m & " mois ", "") & IIf(s, s & " semaine" & IIf(s > 1, "s", "") & " ", "") & IIf(j Or (A + m + j = 0), j & " jour" & IIf(j > 1, "s", ""), "")
    End If
End Function
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…