formule ÚTEDIF(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")
Salutations!
"AG" a écrit dans le message de news: Je cherche une fonction qui, à partir d'une date de naissance me donnerait l'age d'une personne
Je peux faire l'écart entre AJOURDHUI() et la date de naissance, ce qui me donne le nombre de jours et diviser le tout par 365
Il y a cependant un probleme avec les années bissextiles lorsque aujourdhui est trop près de la date d'anniversaire
Une idée quelqu'un
Merci
AG
Bonjour AG,
A1 = date de naissance
B1 = date du jour
formule
ÚTEDIF(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")
Salutations!
"AG" <a@b.c> a écrit dans le message de news: Oxlo4NowEHA.3624@TK2MSFTNGP09.phx.gbl...
Je cherche une fonction qui, à partir d'une date de naissance me donnerait
l'age d'une personne
Je peux faire l'écart entre AJOURDHUI() et la date de naissance, ce qui me
donne le nombre de jours et diviser le tout par 365
Il y a cependant un probleme avec les années bissextiles lorsque aujourdhui
est trop près de la date d'anniversaire
formule ÚTEDIF(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")
Salutations!
"AG" a écrit dans le message de news: Je cherche une fonction qui, à partir d'une date de naissance me donnerait l'age d'une personne
Je peux faire l'écart entre AJOURDHUI() et la date de naissance, ce qui me donne le nombre de jours et diviser le tout par 365
Il y a cependant un probleme avec les années bissextiles lorsque aujourdhui est trop près de la date d'anniversaire
Une idée quelqu'un
Merci
AG
Starwing
Bonjour, En Al la date de naissance, En A2, La formule suivante: =Maintenant() En A3:
=CONCATENER(DATEDIF(A1;A2;"y");" ans ";DATEDIF(A1;A2;"ym");" mois et ";DATEDIF(A1;A2;"md");" jours ")
Starwing
Bonjour,
En Al la date de naissance,
En A2, La formule suivante: =Maintenant()
En A3:
=CONCATENER(DATEDIF(A1;A2;"y");" ans ";DATEDIF(A1;A2;"ym");" mois et
";DATEDIF(A1;A2;"md");" jours ")
=SUPPRESPACE(SI(AUJOURDHUI()-D;TEXTE(DATEDIF(D;AUJOURDHUI();"y");"[>1]0"" ans"";[>]""1 an"";")&TEXTE(DATEDIF(D;AUJOURDHUI();"ym");"[>] 0"" mois ""; ")&TEXTE(DATEDIF(D;AUJOURDHUI();"md");"[>1]0"" jours"";[>]""1 jour"";");"0 jour"))
AV
Starwing
Bon ben, tant qu'à faire:
En VBA?
Function AMJ(Day1 As Date, Day2 As Date) As String Dim years, months, days, m years = Year(Day2) - Year(Day1) If Month(Day1) > Month(Day2) Then years = years - 1 End If If Month(Day2) < Month(Day1) Then months = 12 - Month(Day1) + Month(Day2) Else months = Month(Day2) - Month(Day1) End If If Day(Day2) < Day(Day1) Then months = months - 1 If Month(Day2) = Month(Day1) Then years = years - 1 months = 11 End If End If days = Day(Day2) - Day(Day1) If days < 0 Then m = CInt(Month(Day2)) - 1 If m = 0 Then m = 12 Select Case m Case 1, 3, 5, 7, 8, 10, 12 days = 31 + days Case 4, 6, 9, 11 days = 30 + days Case 2 If (Year(Day2) Mod 4 = 0 And Year(Day2) _ Mod 100 <> 0) Or Year(Day2) Mod 400 = 0 Then days = 29 + days Else days = 28 + days End If End Select End If AMJ = CStr(years) + " ans " + CStr(months) _ + " mois et " + CStr(days) + " jours " End Function
Cette fonction se fout du singulier... ;0) Starwing
Bon ben, tant qu'à faire:
En VBA?
Function AMJ(Day1 As Date, Day2 As Date) As String
Dim years, months, days, m
years = Year(Day2) - Year(Day1)
If Month(Day1) > Month(Day2) Then
years = years - 1
End If
If Month(Day2) < Month(Day1) Then
months = 12 - Month(Day1) + Month(Day2)
Else
months = Month(Day2) - Month(Day1)
End If
If Day(Day2) < Day(Day1) Then
months = months - 1
If Month(Day2) = Month(Day1) Then
years = years - 1
months = 11
End If
End If
days = Day(Day2) - Day(Day1)
If days < 0 Then
m = CInt(Month(Day2)) - 1
If m = 0 Then m = 12
Select Case m
Case 1, 3, 5, 7, 8, 10, 12
days = 31 + days
Case 4, 6, 9, 11
days = 30 + days
Case 2
If (Year(Day2) Mod 4 = 0 And Year(Day2) _
Mod 100 <> 0) Or Year(Day2) Mod 400 = 0 Then
days = 29 + days
Else
days = 28 + days
End If
End Select
End If
AMJ = CStr(years) + " ans " + CStr(months) _
+ " mois et " + CStr(days) + " jours "
End Function
Cette fonction se fout du singulier... ;0)
Starwing
Function AMJ(Day1 As Date, Day2 As Date) As String Dim years, months, days, m years = Year(Day2) - Year(Day1) If Month(Day1) > Month(Day2) Then years = years - 1 End If If Month(Day2) < Month(Day1) Then months = 12 - Month(Day1) + Month(Day2) Else months = Month(Day2) - Month(Day1) End If If Day(Day2) < Day(Day1) Then months = months - 1 If Month(Day2) = Month(Day1) Then years = years - 1 months = 11 End If End If days = Day(Day2) - Day(Day1) If days < 0 Then m = CInt(Month(Day2)) - 1 If m = 0 Then m = 12 Select Case m Case 1, 3, 5, 7, 8, 10, 12 days = 31 + days Case 4, 6, 9, 11 days = 30 + days Case 2 If (Year(Day2) Mod 4 = 0 And Year(Day2) _ Mod 100 <> 0) Or Year(Day2) Mod 400 = 0 Then days = 29 + days Else days = 28 + days End If End Select End If AMJ = CStr(years) + " ans " + CStr(months) _ + " mois et " + CStr(days) + " jours " End Function
Cette fonction se fout du singulier... ;0) Starwing
AV
Bon ben, tant qu'à faire: ....
Cette fonction se fout du singulier... ;0)
Hum.... Si tu as 04/11/2004 en A1 ta fonction perso =AMJ(A1;AUJOURDHUI()) renvoie : 20 ans 0 mois et 0 jours
Bofff non ? T'as essayé : =SUPPRESPACE(SI(AUJOURDHUI()-A1;TEXTE(DATEDIF(A1;AUJOURDHUI();"y");"[>1]0"" ans"";[>]""1 an"";")&TEXTE(DATEDIF(A1;AUJOURDHUI();"ym");"[>] 0"" mois ""; ")&TEXTE(DATEDIF(A1;AUJOURDHUI();"md");"[>1]0"" jours"";[>]""1 jour"";");"0 jour"))
AV
Bon ben, tant qu'à faire:
....
Cette fonction se fout du singulier... ;0)
Hum....
Si tu as 04/11/2004 en A1 ta fonction perso =AMJ(A1;AUJOURDHUI())
renvoie :
20 ans 0 mois et 0 jours
Bofff non ?
T'as essayé :
=SUPPRESPACE(SI(AUJOURDHUI()-A1;TEXTE(DATEDIF(A1;AUJOURDHUI();"y");"[>1]0""
ans"";[>]""1 an"";")&TEXTE(DATEDIF(A1;AUJOURDHUI();"ym");"[>] 0"" mois "";
")&TEXTE(DATEDIF(A1;AUJOURDHUI();"md");"[>1]0"" jours"";[>]""1 jour"";");"0
jour"))