OVH Cloud OVH Cloud

Datedif

2 réponses
Avatar
Izmi
Bonjour ;

J'ai dans une colonne B les dates début, et dans la colonne C les dates fin.
Je voudrais faire ressortir dans la colonne D les écarts entre les deux
groupes de dates sous la forme : x ans, y mois et z jours. Je sais le faire
avec la formule datedif . Je ne sais pas le faire avec vba.
Si quelqu'un peut m'aider à trouver la solution qu'il en soit remercié.

Cordialement

Izmi

2 réponses

Avatar
ClémentMarcotte
Bonjour,

Va falloir que tu enlèves les semaines:

http://cjoint.com/?hdaVsKMawH


"Izmi" a écrit dans le message de
news:
Bonjour ;

J'ai dans une colonne B les dates début, et dans la colonne C les dates
fin.

Je voudrais faire ressortir dans la colonne D les écarts entre les deux
groupes de dates sous la forme : x ans, y mois et z jours. Je sais le
faire

avec la formule datedif . Je ne sais pas le faire avec vba.
Si quelqu'un peut m'aider à trouver la solution qu'il en soit remercié.

Cordialement

Izmi



Avatar
AV
Avec dates de début en B1:Bxx et dates de fin en C1:Cxx, mettre les "durées" en
D1:Dxx :
(Inspiré d'une trouvaille de LL)

Sub zz_ages()
Application.ScreenUpdating = False
For i = 1 To [B65536].End(3).Row
Cells(i, "d") = Evaluate("trim(if(" & Cells(i, "c") * 1 & "-" & Cells(i,
"b") * 1 & ",text(datedif(" & Cells(i, "b") * 1 & "," & Cells(i, "c") * 1 &
",""y""),""[>1]0"""" ans"""";[>]""""1 an"""";"")&text(datedif(" & Cells(i, "b")
* 1 & "," & Cells(i, "c") * 1 & ",""ym""),""[>] 0"""" mois """";
"")&text(datedif(" & Cells(i, "b") * 1 & "," & Cells(i, "c") * 1 &
",""md""),""[>1]0"""" jours"""";[>]""""1 jour"""";""),""0 jour""))")
Next
End Sub

PS : L'intruction qui va de Cells à la dernière parenthèse est sur une seule
ligne !
AV