Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Calculer l'âge exact

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

10 réponses

1 2
Avatar
AndréBdR
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" a écrit dans le message de 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

Avatar
Albert
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" a écrit dans le message de
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
Avatar
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" a écrit dans le message de groupe de 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
Avatar
Jacquouille
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" a écrit dans le message de news:

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" a écrit dans le message de groupe de
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

Avatar
isabelle
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
Avatar
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" a écrit dans le message de groupe de
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" a écrit dans le message de news:

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" a écrit dans le message de groupe de
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

Avatar
AndréBdR
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" a écrit dans le message de news:

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" a écrit dans le message de groupe de
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" a écrit dans le message de news:

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" a écrit dans le message de groupe de
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




Avatar
Modeste
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
Avatar
michdenis
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 !
Avatar
michdenis
| 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 ?
1 2