Calculer l'âge depuis une date de naissance dans une macro
Le
Jacques ELKINE
Bonjour,
Je voudrais pouvoir transformer sur word, par une simple macro, une date
de naissance saisie dans le texte par l'âge correspondant.
Je coince encore. Lorsque je contrôle, l'âge affiché ne change pas au
jour près, lorsque je saisis successivement des dates de naissance
proches de la date du jour (Date).
Ci-dessous ma macro, dans son état actuel :
Sub AGE()
' Age Macro
' Macro enregistrée le 30/04/2006
' Sélectionne une date qu'on vient de saisir dans le texte
' (10 caractères) place le contenu dans Datenaiss
Selection.MoveLeft Unit:=wdCharacter, Count:, Extend:=wdExtend
Dim DateNaiss As Date
Dim AgePat As Variant
DateNaiss = Selection
AgePat = DateDiff("yy", DateNaiss, Now)
MsgBox (AgePat)
' Suit ci-dessous la suite du projet qui inscrira l'âge
' Efface la date de naissance dans le texte et la remplace
' par l'âge calculé
' Delete.Selection
' ReplaceSelection = True
' Selection.TypeText (AgePat)
End Sub
Merci d'avance pour toute contribution.
Bien cordialement.
Je voudrais pouvoir transformer sur word, par une simple macro, une date
de naissance saisie dans le texte par l'âge correspondant.
Je coince encore. Lorsque je contrôle, l'âge affiché ne change pas au
jour près, lorsque je saisis successivement des dates de naissance
proches de la date du jour (Date).
Ci-dessous ma macro, dans son état actuel :
Sub AGE()
' Age Macro
' Macro enregistrée le 30/04/2006
' Sélectionne une date qu'on vient de saisir dans le texte
' (10 caractères) place le contenu dans Datenaiss
Selection.MoveLeft Unit:=wdCharacter, Count:, Extend:=wdExtend
Dim DateNaiss As Date
Dim AgePat As Variant
DateNaiss = Selection
AgePat = DateDiff("yy", DateNaiss, Now)
MsgBox (AgePat)
' Suit ci-dessous la suite du projet qui inscrira l'âge
' Efface la date de naissance dans le texte et la remplace
' par l'âge calculé
' Delete.Selection
' ReplaceSelection = True
' Selection.TypeText (AgePat)
End Sub
Merci d'avance pour toute contribution.
Bien cordialement.

Poser une question


Tu ne calcule l'âge que sur l'année
Essaie avec
Age = DateDiff("yyyy", DateNaissance, Date) + (Format(Date, "mmdd") <
Format(DateNaissance, "mmdd"))
Gilbert
"Jacques ELKINE" news:
Joli !
--
A+
Merci ! Quelle rapidité !
Mais le résultat donne 107 ans lorsque je prends ma date de naissance
(07/07/1945 C'est déjà beaucoup à mon goût... ;°))
Peut-être ai-je fait une erreur. J'ai pourtant copié-collé la ligne de
macro et remis AgePat au lieu d'Age comme variable.
Précisions : je suis sous WinXp Pro et Word 2002 SP3
Merci pour toute autre contribution.
Cordialement.
Jacques ELKINE
ça ne marchait pas....)
Ça marche super !!! C'est moi qui n'avais pas mis à jour la variable
Datenaiss devenue Datenaissance dans votre proposition.
Mille fois merci !
Je me permettrai d'en demander d'autres, si je ne gène pas...
Suggestion : une réponse comme celel que j'ai reçue mériterait d'être
cataloguée pour les autres utilisateurs. Je finis ma macro et je la
dépose sur les news.
Bien cordialement.
Jacquezs ELKINE
Ne t'inquiète pas, la réponse que tu as reçue est issue, telle quelle (d'où
le "DateNaissance" au lieu de ton champ), du forum Access.
Elle y est cataloguée depuis longtemps car la question que tu as posée l'est
plus souvent dans le contexte d'une base de données ou d'une feuille de
calcul que d'un traitement de texte.
Cela étant, ce fil de discussion a le mérite de montrer qu'on peut utiliser
Word à autre chose qu'à du pur traitement de texte, et ta macro y sera donc
la bienvenue.
--
Tisane