Calculer l'âge exact

Le
Paul Florent
Bonjour à tous,
Dans un tableau Excel 2007,
je souhaite calculer l'âge exact en fonction de la date de naissance et de
la date du jour.
J'ai fait : =ARRONDI((AUJOURDHUI()-LC(-4))/365;0) mais ce n'est pas assez
précis.
Peut être existe t'il une fonction VBA pour régler le problème ?
Merci à tous pour votre aide
Paul
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
AndréBdR
Le #22106641
Voici ce que je mets sur mon fichier de comptes:
* en A1 par exemple, ma date de naissance, genre jj/mm/aaaa
* en B1 par exemple, cette belle formule que j'ai dû piquer quelque part:

="Aujourd'hui j'ai: " &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"";[>]""1jour"";");"0 jour"))

Je ne pouvais pas laisser passer cette question sans réponse de ma part pour deux raisons:
* la semaine prochaine je pars en Corse pour une réunion de promo (50 ans de sortie ..., putain
....!) et je risque de ne pas être là pour les obsèques de microsoft.public.fr.excel (il y a tout:
"public" et "fr")
* mais aussi parce que je m'étais promis de ne jamais employer DATEDIF(). ...C'est l'ami Modeste qui
doit bien se marrer....



"Paul Florent"
Bonjour à tous,
Dans un tableau Excel 2007,
je souhaite calculer l'âge exact en fonction de la date de naissance et de la date du jour.
J'ai fait : =ARRONDI((AUJOURDHUI()-LC(-4))/365;0) mais ce n'est pas assez précis.
Peut être existe t'il une fonction VBA pour régler le problème ?
Merci à tous pour votre aide
Paul

Albert
Le #22106761
Bonjour

Voir la discussion du 5 mai "Soustrare des dates"

Date1 - Cellule nommée représentant la date de naissance
Date2 - Cellule nommée représentant la date d'aujourd'hui

ÚTEDIF(Date1;Date2;"y")&SI(DATEDIF(Date1;Date2;"y")>1;" ans, ";"
an,")&DATEDIF(Date1;Date2;"ym")&"
mois,"&DATEDIF(Date1;Date2;"md")&SI(DATEDIF(Date1;Date2;"md")>1;" jours";"
jour")









"Paul Florent" news:
Bonjour à tous,
Dans un tableau Excel 2007,
je souhaite calculer l'âge exact en fonction de la date de naissance et de
la date du jour.
J'ai fait : =ARRONDI((AUJOURDHUI()-LC(-4))/365;0) mais ce n'est pas assez
précis.
Peut être existe t'il une fonction VBA pour régler le problème ?
Merci à tous pour votre aide
Paul
michdenis
Le #22106911
Bonjour,

Copie cette fonction personnalisée dans un module standard :
Et dans une cellule, tu saisis : =Age(a1) en supposant que l'âge
du candidat se retrouve en A1

L'âge s'exprimera en année complète + le nombre de jours
de la dernière année en cours.

Exemple : 20 ans 256 jours
La fonction ne calcule pas la journée de la naissance et celle de
la date en cours. Si tu veux inclure ces 2 jours, tu dois ajouter +1
à la fonction.

'-----------------------------------------
Function Age(DateAnniversaire As Range) As String
Dim X As Date, An As Long, Jour As Integer
X = DateSerial(Year(Date), Month(DateAnniversaire), _
Day(DateAnniversaire))
An = DateDiff("YYYY", DateAnniversaire, Date)
Jour = DateDiff("d", X, Date)
If Jour = 0 Then
Age = An & IIf(An > 1, " ans ", " an ")
ElseIf An = 0 Then
Age = Jour & IIf(Jour > 1, " jours", " jour")
ElseIf An > 0 And Jour > 0 Then
Age = An & IIf(An > 1, " ans ", " an ") & Jour & _
IIf(Jour > 1, " jours", " jour")
End If
End Function
'-----------------------------------------




"Paul Florent"
Bonjour à tous,
Dans un tableau Excel 2007,
je souhaite calculer l'âge exact en fonction de la date de naissance et de
la date du jour.
J'ai fait : =ARRONDI((AUJOURDHUI()-LC(-4))/365;0) mais ce n'est pas assez
précis.
Peut être existe t'il une fonction VBA pour régler le problème ?
Merci à tous pour votre aide
Paul
Jacquouille
Le #22106901
Salut Denis
Tu peux m'expliquer pourquoi on n'ajoute que 1 si on veut comptabiliser deux
choses (dates) qui ne le sont pas ?
La fonction ne calcule pas la journée de la naissance et celle de
la date en cours. Si tu veux inclure ces 2 jours, tu dois ajouter +1
à la fonction


Merci et bonne fin de journée.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"michdenis"
Bonjour,

Copie cette fonction personnalisée dans un module standard :
Et dans une cellule, tu saisis : =Age(a1) en supposant que l'âge
du candidat se retrouve en A1

L'âge s'exprimera en année complète + le nombre de jours
de la dernière année en cours.

Exemple : 20 ans 256 jours
La fonction ne calcule pas la journée de la naissance et celle de
la date en cours. Si tu veux inclure ces 2 jours, tu dois ajouter +1
à la fonction.

'-----------------------------------------
Function Age(DateAnniversaire As Range) As String
Dim X As Date, An As Long, Jour As Integer
X = DateSerial(Year(Date), Month(DateAnniversaire), _
Day(DateAnniversaire))
An = DateDiff("YYYY", DateAnniversaire, Date)
Jour = DateDiff("d", X, Date)
If Jour = 0 Then
Age = An & IIf(An > 1, " ans ", " an ")
ElseIf An = 0 Then
Age = Jour & IIf(Jour > 1, " jours", " jour")
ElseIf An > 0 And Jour > 0 Then
Age = An & IIf(An > 1, " ans ", " an ") & Jour & _
IIf(Jour > 1, " jours", " jour")
End If
End Function
'-----------------------------------------




"Paul Florent" discussion :

Bonjour à tous,
Dans un tableau Excel 2007,
je souhaite calculer l'âge exact en fonction de la date de naissance et de
la date du jour.
J'ai fait : =ARRONDI((AUJOURDHUI()-LC(-4))/365;0) mais ce n'est pas assez
précis.
Peut être existe t'il une fonction VBA pour régler le problème ?
Merci à tous pour votre aide
Paul

isabelle
Le #22106991
bonjour Paul Florent et à tous,

=SI(A1="";"";DATEDIF(A1;AUJOURDHUI();"y")&SI(DATEDIF(A1;AUJOURDHUI();"y")>1;"
ans, ";" an, ")&DATEDIF(A1;AUJOURDHUI();"ym")&" mois,
"&DATEDIF(A1;AUJOURDHUI();"md")&SI(DATEDIF(A1;AUJOURDHUI();"md")>1;"
jours";" jour"))

isabelle

Le 2010-05-12 09:23, Paul Florent a écrit :
Bonjour à tous,
Dans un tableau Excel 2007,
je souhaite calculer l'âge exact en fonction de la date de naissance
et de la date du jour.
J'ai fait : =ARRONDI((AUJOURDHUI()-LC(-4))/365;0) mais ce n'est pas
assez précis.
Peut être existe t'il une fonction VBA pour régler le problème ?
Merci à tous pour votre aide
Paul
michdenis
Le #22107451
Si un bébé est né ce matin, sa date de naissance est aujourd'hui.
Quel est son âge ? 0 ou 1 jour. Certains voudraient que ce soit
un jour et d'autres 0 jour. D'où selon la préférence de chacun, on
ajoute un 1 au résultat de la fonction. La fonction, elle-même retourne 0.

Habituellement, une différence entre 2 choses ne prend pas en compte
le point de départ... mais il se peut qu'il y ait des situations qui l'exigent...
Voilà pour la petite histoire.



"Jacquouille" discussion :
Salut Denis
Tu peux m'expliquer pourquoi on n'ajoute que 1 si on veut comptabiliser deux
choses (dates) qui ne le sont pas ?
La fonction ne calcule pas la journée de la naissance et celle de
la date en cours. Si tu veux inclure ces 2 jours, tu dois ajouter +1
à la fonction


Merci et bonne fin de journée.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"michdenis"
Bonjour,

Copie cette fonction personnalisée dans un module standard :
Et dans une cellule, tu saisis : =Age(a1) en supposant que l'âge
du candidat se retrouve en A1

L'âge s'exprimera en année complète + le nombre de jours
de la dernière année en cours.

Exemple : 20 ans 256 jours
La fonction ne calcule pas la journée de la naissance et celle de
la date en cours. Si tu veux inclure ces 2 jours, tu dois ajouter +1
à la fonction.

'-----------------------------------------
Function Age(DateAnniversaire As Range) As String
Dim X As Date, An As Long, Jour As Integer
X = DateSerial(Year(Date), Month(DateAnniversaire), _
Day(DateAnniversaire))
An = DateDiff("YYYY", DateAnniversaire, Date)
Jour = DateDiff("d", X, Date)
If Jour = 0 Then
Age = An & IIf(An > 1, " ans ", " an ")
ElseIf An = 0 Then
Age = Jour & IIf(Jour > 1, " jours", " jour")
ElseIf An > 0 And Jour > 0 Then
Age = An & IIf(An > 1, " ans ", " an ") & Jour & _
IIf(Jour > 1, " jours", " jour")
End If
End Function
'-----------------------------------------




"Paul Florent" discussion :

Bonjour à tous,
Dans un tableau Excel 2007,
je souhaite calculer l'âge exact en fonction de la date de naissance et de
la date du jour.
J'ai fait : =ARRONDI((AUJOURDHUI()-LC(-4))/365;0) mais ce n'est pas assez
précis.
Peut être existe t'il une fonction VBA pour régler le problème ?
Merci à tous pour votre aide
Paul

AndréBdR
Le #22107561
J'aurais tendance à dire qu'il ne peut pas avoir un jour puisqu'il n'a pas encore un jour ...
Comme en toute chose, si l'outil de mesure ne convient pas, il faut en changer.
Ainsi, ton bébé, il a peut-être 7 heures et 8 minutes ...

"michdenis"
Si un bébé est né ce matin, sa date de naissance est aujourd'hui.
Quel est son âge ? 0 ou 1 jour. Certains voudraient que ce soit
un jour et d'autres 0 jour. D'où selon la préférence de chacun, on
ajoute un 1 au résultat de la fonction. La fonction, elle-même retourne 0.

Habituellement, une différence entre 2 choses ne prend pas en compte
le point de départ... mais il se peut qu'il y ait des situations qui l'exigent...
Voilà pour la petite histoire.



"Jacquouille" discussion :
Salut Denis
Tu peux m'expliquer pourquoi on n'ajoute que 1 si on veut comptabiliser deux
choses (dates) qui ne le sont pas ?
La fonction ne calcule pas la journée de la naissance et celle de
la date en cours. Si tu veux inclure ces 2 jours, tu dois ajouter +1
à la fonction


Merci et bonne fin de journée.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"michdenis"
Bonjour,

Copie cette fonction personnalisée dans un module standard :
Et dans une cellule, tu saisis : =Age(a1) en supposant que l'âge
du candidat se retrouve en A1

L'âge s'exprimera en année complète + le nombre de jours
de la dernière année en cours.

Exemple : 20 ans 256 jours
La fonction ne calcule pas la journée de la naissance et celle de
la date en cours. Si tu veux inclure ces 2 jours, tu dois ajouter +1
à la fonction.

'-----------------------------------------
Function Age(DateAnniversaire As Range) As String
Dim X As Date, An As Long, Jour As Integer
X = DateSerial(Year(Date), Month(DateAnniversaire), _
Day(DateAnniversaire))
An = DateDiff("YYYY", DateAnniversaire, Date)
Jour = DateDiff("d", X, Date)
If Jour = 0 Then
Age = An & IIf(An > 1, " ans ", " an ")
ElseIf An = 0 Then
Age = Jour & IIf(Jour > 1, " jours", " jour")
ElseIf An > 0 And Jour > 0 Then
Age = An & IIf(An > 1, " ans ", " an ") & Jour & _
IIf(Jour > 1, " jours", " jour")
End If
End Function
'-----------------------------------------




"Paul Florent" discussion :

Bonjour à tous,
Dans un tableau Excel 2007,
je souhaite calculer l'âge exact en fonction de la date de naissance et de
la date du jour.
J'ai fait : =ARRONDI((AUJOURDHUI()-LC(-4))/365;0) mais ce n'est pas assez
précis.
Peut être existe t'il une fonction VBA pour régler le problème ?
Merci à tous pour votre aide
Paul




Modeste
Le #22107591
Bonsour® "Jacquouille" a écrit
Tu peux m'expliquer pourquoi on n'ajoute que 1 si on veut comptabiliser
deux choses (dates) qui ne le sont pas ?
La fonction ne calcule pas la journée de la naissance et celle de
la date en cours. Si tu veux inclure ces 2 jours, tu dois ajouter +1
à la fonction





parce que l'on parle de jour !!!
et qu'une date seule par défaut c'est date à 00:00

date+ 24:00 = date +1

;o)))
c'est la notion de bornes et intervalle que l'on apprenait à l'école
primaire :
entre deux bornes il n'y a qu'un intervalle
michdenis
Le #22107691
La fonction est correcte telle qu'elle est écrite.
J'apportais seulement une petite explication pour ceux
qui ont besoin de faire différemment !
;-)

| c'est la notion de bornes et intervalle que l'on apprenait à l'école
| primaire : entre deux bornes il n'y a qu'un intervalle

Bravo! mais ce n'est pas l'apanage de tous...Je me promets
bien de la terminer un jour !
michdenis
Le #22107811
| putain ....!) et je risque de ne pas être là pour les obsèques
| de microsoft.public.fr.excel

Est-ce que quelqu'un connaît la date avec précision ?
Si oui, quelle est votre source ?
Publicité
Poster une réponse
Anonyme