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

4 réponses

1 2
Avatar
AG
Merci beaucoup

AG


"Starwing" a écrit dans le message de
news:%
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
Starwing
Bonjour Av,

Oui Oui je l'ai essayé et elle fonctionne très bien, je l'ai mis en
veilleuse d'ailleurs, ;0)

De plus pour revenir à ceci:

Si tu as 04/11/2004 en A1 ta fonction perso =AMJ(A1;AUJOURDHUI())
renvoie :
20 ans 0 mois et 0 jours


Chez moi, j'ai la forme AAAA/MM/JJ
Et me retrourne : 0 ans 0 mois 0 jours...

Starwing

Avatar
Misange
Mais si mais si u l'as dans ton excel, elle n'est pas documentée mais
elle y est. Essaie !
tu trouveras plein de trucs dessus sur excelabo (tape datedif dans le
oteur de recherche)

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


on 04/11/2004 17:47:
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
AG
Tu as raison, j'avais fait une erreur en recopiant

Merci

AG


"Misange" a écrit dans le message de
news:
Mais si mais si u l'as dans ton excel, elle n'est pas documentée mais
elle y est. Essaie !
tu trouveras plein de trucs dessus sur excelabo (tape datedif dans le
oteur de recherche)

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


on 04/11/2004 17:47:
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













1 2