OVH Cloud OVH Cloud

Calcul d'age

14 réponses
Avatar
AG
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

10 réponses

1 2
Avatar
michdenis
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 é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
Avatar
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
Avatar
Claude Trouet
Bonsoir,
du côté de http://www.excelabo.net
en cherchant l'age du capitaine par exemple

CT


"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




Avatar
Misange
Bonjour,
La formule magique de ChrisV

http://www.excelabo.net/xl/dates.php#agecapitaine
attention ne pas mettre d'espace ni de retour à la ligne...

=SI(ET(DATEDIF(Date_Naissance;AUJOURDHUI();"y")=0;
DATEDIF(Date_Naissance;AUJOURDHUI();"ym")=0;
DATEDIF(Date_Naissance;AUJOURDHUI();"md")=0);0&" jour";
SI(DATEDIF(Date_Naissance;AUJOURDHUI();"y")<>0;
DATEDIF(Date_Naissance;AUJOURDHUI();"y")&SI(DATEDIF
(Date_Naissance;AUJOURDHUI();"y")>1;" ans ";" an
");"")
&SI(DATEDIF(Date_Naissance;AUJOURDHUI();"ym")<>0;
DATEDIF(Date_Naissance;AUJOURDHUI();"ym")&" mois ";"")
&SI(DATEDIF(Date_Naissance;AUJOURDHUI();"md")<>0;
DATEDIF(Date_Naissance;AUJOURDHUI();"md")&SI(DATEDIF
(Date_Naissance;AUJOURDHUI();"md")>1;" jours";"
jour");""))

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


on 04/11/2004 16:32:
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




Avatar
AG
La fonction DATEDIF est définie pour fins de compatiblité Lotus
Je n'ai pas DATEDIF dans a version d'excel que j'utilise
Ou puis-je la trouver?

Merci

AG

"Misange" a écrit dans le message de
news:
Bonjour,
La formule magique de ChrisV

http://www.excelabo.net/xl/dates.php#agecapitaine
attention ne pas mettre d'espace ni de retour à la ligne...

=SI(ET(DATEDIF(Date_Naissance;AUJOURDHUI();"y")=0;
DATEDIF(Date_Naissance;AUJOURDHUI();"ym")=0;
DATEDIF(Date_Naissance;AUJOURDHUI();"md")=0);0&" jour";
SI(DATEDIF(Date_Naissance;AUJOURDHUI();"y")<>0;
DATEDIF(Date_Naissance;AUJOURDHUI();"y")&SI(DATEDIF
(Date_Naissance;AUJOURDHUI();"y")>1;" ans ";" an
");"")
&SI(DATEDIF(Date_Naissance;AUJOURDHUI();"ym")<>0;
DATEDIF(Date_Naissance;AUJOURDHUI();"ym")&" mois ";"")
&SI(DATEDIF(Date_Naissance;AUJOURDHUI();"md")<>0;
DATEDIF(Date_Naissance;AUJOURDHUI();"md")&SI(DATEDIF
(Date_Naissance;AUJOURDHUI();"md")>1;" jours";"
jour");""))

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


on 04/11/2004 16:32:
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






Avatar
GuyM
Bonjour, Formule superbe, BRAVO

Guy
Avatar
Clément Marcotte
http://longre.free.fr/pages/form/dateheure.htm#DATEDIF


"AG" a écrit dans le message de
news:
La fonction DATEDIF est définie pour fins de compatiblité Lotus
Je n'ai pas DATEDIF dans a version d'excel que j'utilise
Ou puis-je la trouver?

Merci

AG

"Misange" a écrit dans le message de
news:
Bonjour,
La formule magique de ChrisV

http://www.excelabo.net/xl/dates.php#agecapitaine
attention ne pas mettre d'espace ni de retour à la ligne...

=SI(ET(DATEDIF(Date_Naissance;AUJOURDHUI();"y")=0;
DATEDIF(Date_Naissance;AUJOURDHUI();"ym")=0;
DATEDIF(Date_Naissance;AUJOURDHUI();"md")=0);0&" jour";
SI(DATEDIF(Date_Naissance;AUJOURDHUI();"y")<>0;
DATEDIF(Date_Naissance;AUJOURDHUI();"y")&SI(DATEDIF
(Date_Naissance;AUJOURDHUI();"y")>1;" ans ";" an
");"")
&SI(DATEDIF(Date_Naissance;AUJOURDHUI();"ym")<>0;
DATEDIF(Date_Naissance;AUJOURDHUI();"ym")&" mois ";"")
&SI(DATEDIF(Date_Naissance;AUJOURDHUI();"md")<>0;
DATEDIF(Date_Naissance;AUJOURDHUI();"md")&SI(DATEDIF
(Date_Naissance;AUJOURDHUI();"md")>1;" jours";"
jour");""))

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


on 04/11/2004 16:32:
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










Avatar
AV
La version la plus finalisée (LL)

=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
Avatar
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
Avatar
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

1 2