Formule ecart de mois et jours

SubwAy

XLDnaute Nouveau
Bonjour a tous,

Avant tous, je tiens a m'excuser pour l'absence d'accents dans mon texte, mais mon systeme est en anglais avec un clacier qwerty, donc je ne peux pas faire mieux :-( Enfin bref, j'ai fait face a quelques difficultes pour construire un model financier il y a peu et ce forum m'a ete d'une grande aide, donc je reviens :).

Je dispose d'une cellule avec la date d'aujourd'hui (B1) et une cellule contenant une date de fin d'investissement (B11). J'ai maintenant besoin dans une cellule (B15 par exemple) d'avoir le nombre de mois, entiers, entre les deux dates (je me suis servi de la fonction DATEDIF(B1,B11,"m") et ca a fonctionne). Maintenant le probleme c'est que j'ai besoin dans une autre cellule (B16) d'avoir le nombre de jours entre la partie jour des deux dates (je m'explique, entre le 29/03/2009 et le 30/05/2009, il y a deux mois et un jour, c'est donc le un jour que je cherche). J'ai donc tente DATEDIF(B1,B11,"d")-(B15*31), considerant qu'il y a 31 jours dans un mois. Le probleme est que premierement, en fonction des dates entrees, je peux me retrouver avec un nombre de jour negatif et deuxiemement il n'y a pas que des mois a 31 jours... J'ai reussi jusqu'a maintenant a respecter le nombre de jours parfaitement, je n'ai pas envie de faire de l'approximatif a cause de ma meconnaissance d'Excel.

Voila, j'espere que mon explication est comprehensible, et encore mille fois pardon pour l'absence d'accents.

Merci d'avance aux personnes lisant ce thread et qui peut etre pourront m'aider :)

A bientot j'espere.

Sub
 

SubwAy

XLDnaute Nouveau
Re : Formule ecart de mois et jours

Merci mille fois a tous les deux !!!!!

La solution impliquant les macros semblait parfaite mais je dois malheureusement me passer de macro autant que possible.

La solution proposee par James007 est parfaite, si je la decortique.

J'utilise seulement la partie DATEDIF(B1,B11,"md") et cela me donne la difference entre la partie jour de la formule (je ne comprends d'ailleurs pas a quoi correspondent md, peut etre "month day" mais je ne vois pas comment la formule fonctionne).

Enfin bref, il semble que tout fonctionne parfaitement, donc merci mille fois !!!

Je retourne travailler sur le model, en esperant que tout se deroule naturellement maintenant :)

A bientot, et merci encore !!

Sub
 

James007

XLDnaute Barbatruc
Re : Formule ecart de mois et jours

Bonjour,


J'ai crû qu'il te fallait le tout en anglais ...;) compte tenu de la teneur de ton premier message ...

Je te confirme que ton hypothèse "md" signifie bien "monthday" ...
Si tu veux en savoir plus sur datedif() .... " press F1 " ...

A +
 

Cousinhub

XLDnaute Barbatruc
Re : Formule ecart de mois et jours

Bonsoir,

James007, excuse si je me trompe, mais il me semble que DATEDIF ne fait pas partie des fonctions expliquées dans l'aide d'excel (F1)....

En droite ligne du site de Laurent Longre ( Ce lien n'existe plus )

La fonction DATEDIF (calculs d'âge)
DATEDIF fait partie des fonctions masquées d'Excel, au même titre que par exemple ISPMT ou USDOLLAR. Elle n'est pas
référencée par l'aide en ligne et n'apparaît pas dans la liste des fonctions disponibles de l'assistant "Coller une
fonction".
DATEDIF permet de calculer la différence entre deux dates en années, mois et jours.
Syntaxe : =DATEDIF(Date1;Date2;Intervalle)
Cette fonction renvoie la différence entre Date1 et Date2 (Date2 >= Date1) selon l'argument Intervalle, qui peut prendre les
valeurs suivantes :
"y" : différence en années
"m" : différence en mois
"d" : différence en jours
"ym" : différence en mois, une fois les années soustraites
"yd" : différence en jours, une fois les années soustraites
"md" : différence en jours, une fois les années et les mois soustraits
Exemple :
=DATEDIF("5/4/1990";"15/8/99";Intervalle) renvoie les valeurs suivantes selon la valeur de l'argument Intervalle :
"y" : 9 (ans)
"m" : 112 (mois)
"d" : 3419 (jours)
"ym" : 4 (mois restants, une fois les 9 ans soustraits)
"yd" : 132 (jours restants, une fois les 9 ans soustraits)
"md" : 10 (jours restants, une fois les 112 mois soustraits)
La fonction DATEDIF peut être en particulier utilisée pour calculer des âges. Par exemple, si la cellule A1 contient une date
de naissance et la cellule B1 la date du jour :
- Age en années simples :
=DATEDIF(A1;B1;"y")&SI(DATEDIF(A1;B1;"y")>1;" ans";" an")
- Age en années et mois :
=DATEDIF(A1;B1;"y")&SI(DATEDIF(A1;B1;"y")>1;" ans, ";" an, ")
&DATEDIF(A1;B1;"ym")&" mois"
- Age en années, mois et jours :
=DATEDIF(A1;B1;"y")&SI(DATEDIF(A1;B1;"y")>1;" ans, ";" an, ")&DATEDIF(A1;B1;"ym")
&" mois, "&DATEDIF(A1;B1;"md")&SI(DATEDIF(A1;B1;"md")>1;" jours";" jour")
La fonction non documentée DATEDIF ne faisant pas partie de la collection WorksheetFunction, il est nécessaire de passer par
la fonction Evaluate pour l'utiliser à partir de VBA.
La fonction VBA suivante s'appuie sur DATEDIF pour renvoyer un âge en années, mois et jours à partir de deux dates :
Function AGE(Date1 As Date, Date2 As Date) As String
Dim Elt As Long, D1 As Long, D2 As Long
D1 = Int(Date1): D2 = Int(Date2)
Elt = Evaluate("DATEDIF(" & D1 & "," & D2 & ",""y""")
AGE = Elt & IIf(Elt > 1, " ans, ", " an,") & _
Evaluate("DATEDIF(" & D1 & "," & D2 & ",""ym""") & " mois, "
Elt = Evaluate("DATEDIF(" & D1 & "," & D2 & ",""md""")
AGE = AGE & Elt & IIf(Elt > 1, " jours", " jour")
End Function

Bonne soirée
 

Statistiques des forums

Discussions
312 392
Messages
2 088 004
Membres
103 693
dernier inscrit
vincs