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

7 réponses

1 2
Avatar
Jacquouille
Salut Denis
Merci pour l'explication.
Voici copie du msg du 9, où il est question de fermer boutique le 1 juin
----------------------------------
Qu'est-ce qui se passe?
Ce message est pour vous informer que Microsoft va bientôt commencer à
cesser les newsgroups et à adresser les usagers aux forums Microsoft.

Pourquoi ?
Comme vous savez, les newsgroups sont existés pour beaucoup d´ans;
toutefois, dans les derniers ans le trafic dans les Microsoft Newsgroups est
progressivement décru, et les usagers ont de plus en plus préféré se tourner
vers d´autres solutions, comme les forums Microsoft ou tiers.
Ce changement va unifier l´expérience des usagers, centraliser les contenus,
rendre plus simple pour les participants de garder leur influence, diminuer
les redondances et rendre les contenus plus accessibles aux clients et aux
moteurs de recherche en améliorant l´indexage. En plus, les forums
permettent une meilleure gestion des usagers et un meilleur contrôle du
spam, qui vont améliorer la satisfaction des clients en encourageant une
saine discussion dans un meilleur environnement communautaire. Dans ce but,
Microsoft commencera à déplacer progressivement les ressources sur les
forums et à arrêter l´assistance sur les newsgroups.

Au-delà d´offrir une très haute expérience en ligne à travers la navigation
des forums, nous avons développé une solution, le NNTP bridge, pour les
usagers qui préfèrent utiliser un lecteur NNTP (newsgroup) pour participer
aux discussions. Cet outil permets aux usagers de connecter diverses
lecteurs NNTP aux forums qu´ils désirent suivre, en continuant à utiliser
toutes les fonctions d´un lecteur NNTP.
Pour d´ultérieurs informations sur comment télécharger et configurer le NNTP
bridge, visiter le site : http://connect.microsoft.com/MicrosoftForums/

Quels Newsgroups vont être concernés par cette fermeture ?
Tous les newsgroups publics finiront pour être définitivement fermés entre
le 1 Juin et le 1 Octobre 2010. Microsoft fermera les newsgroups
progressivement, en commençant avec les newsgroups moins actifs et en
procédant vers les plus actifs tout au cours des prochaines six mois.

Ça va arriver quand ?
Ce newsgroup sera fermé le 1 Juin 2010.

Où peux-je aller dès que ce newsgroup sera fermé ?
Microsoft a une large sélection de forums, dont beaucoup traitent le même
sujet ou de technologies similaires à celles traités dans les newsgroups.
Les forums se sont énormément développés dans les derniers temps et
constituent une place excellente pour continuer la discussion.
Nous vous conseillons de commencer avec le forum
http://social.answers.microsoft.com/Forums/Fr-FR/category/officeexcel

Pour visiter les Microsoft Forums, voir:
http://www.microsoft.com/communities/forums/default.mspx

Qui peux-je contacter si j´ai des questions ?
Pour toute question concernant le procès, les forums recommandés et le
calendrier, contacter

---------------------------------------------------------

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

Jacquouille.

"michdenis" a écrit dans le message de news:


| 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 ?




Avatar
Paul Florent
Merci à tous
Paul
Avatar
michdenis
Avatar
HasTrouBal
Bonjour

Pour les mois de la date évènement postérieurs au mois de la date du jour ,
ça à l'air de coincer
(où j'ai loupé un fil..)

HasTrouBal

"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
Heuh ! Si l'évènement est la date de naissance, c'est un peu normal ...

"HasTrouBal" a écrit dans le message de news:

Bonjour

Pour les mois de la date évènement postérieurs au mois de la date du jour , ça à l'air de coincer
(où j'ai loupé un fil..)

HasTrouBal

"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
HasTrouBal
Je n'ai pas dit si la date est postérieure à la date du jour
mais le mois de l'évènement

ex: age à calculer pour un évènement situé le 15/11/2005
combien as-tu?

Je pense qu'on peut modifier la macro de DenisMichon ainsi:


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)
'***************RajoutDeb******************
If Jour < 0 Then
An = An - 1
Jour = DateDiff("d", DateSerial(Year(Date) - 1,
Month(DateAnniversaire), _
Day(DateAnniversaire)), Date)
End If
'***************RajoutFin******************
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

HasTrouBal


"AndréBdR" a écrit dans le message de
news:4beba138$0$2974$
Heuh ! Si l'évènement est la date de naissance, c'est un peu normal ...

"HasTrouBal" a écrit dans le message de news:

Bonjour

Pour les mois de la date évènement postérieurs au mois de la date du
jour , ça à l'air de coincer
(où j'ai loupé un fil..)

HasTrouBal

"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
michdenis
La fonction proposée "Age(DateAnniversaire As Range) As String"
ne tient pas la route.

En voici une qui répond aux attentes.
Elle retourne l'écart entre 2 dates en "Années" et en "Jours"
et évite les écueils autour de la durée d'un "Mois".

L'année retournée par cette fonction a toujours 365 jours
que ce soit une année bissextile ou non. Le reste est exprimé
en jours.

Dans une feuille de calcul, on entre la fonction comme ceci dans
une cellule : =Écart_Entre_Deux_Dates(A1;A2)
La seule condition a respecté, A1 et A2 doivent être des dates au
format reconnu par Excel.
Le résultat s'exprime de la manière suivante : 3 ans 125 jours

'---------------------------------
Function Écart_Entre_Deux_Dates(Rg As Range, Rg1 As Range)
Dim Jrs As Variant, J As String, An As Variant
Dim A As String, X As String, G As Long, P As Long

If Rg.Value2 > Rg1.Value2 Then
G = Rg
P = Rg1
Else
G = Rg1
P = Rg
End If
If (G - P) = 365 Then
Jrs = 0
An = 1
ElseIf (G - P) > 365 Then
Jrs = (G - P) Mod 365
An = Int((G - P) / 365)
Else
Jrs = G - P
End If
Select Case Jrs
Case 0
J = ""
Jrs = ""
Case 1
J = " jour"
Case Is > 1
J = " jours"
End Select
Select Case An
Case 0
An = ""
A = ""
Case 1
A = " an "
Case Is > 1
A = " ans "
End Select
X = An & A & Jrs & J
If Len(X) = 0 Then
Écart_Entre_Deux_Dates = 0
Else
Écart_Entre_Deux_Dates = X
End If
End Function
'---------------------------------
1 2