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

formule calcul age

6 réponses
Avatar
Orion
Bonjoour,
j'utilise Word 2002
J'ai un document type d'identité dans lequel est indiquée la date de
naissance de la personne.
Je voudrais qu'apparaisse automatiquement à côté l'âge de la dite personne.
J'ai essayé en inscivant la date de naissance dans un champ que j'ai nommé
d'un signet et à côté j'ai mis un champ dans lequel j'ai essayé une formule
DIFFDATE, puis une autre avec une soustraction des deux dates et ça ne marche
pas !
Peut-être pouvez-vous m'aider ?
Je vous souhaite une bonne journée!
JL

6 réponses

Avatar
JièL
Bonjoir(c) Orion

des calculs de dates dans Word ???!!! ben bon courage car c'est
effectivement possible, mais loin (très loin) d'être simple

http://www.wopr.com/cgi-bin/w3t/showthreaded.pl?Number$9902

Vous nous direz si vous persistez dans cette idée, c'est juste pour voir à
quel point vous êtes courageux ;-)))))

--
JièL / Jean-Louis GOUBERT
http://forums.offices.free.fr/
là bas mieux qu'en face ;-)

Le 15/07/2006 23:06 vous avez écrit ceci :
Bonjoour,
j'utilise Word 2002
J'ai un document type d'identité dans lequel est indiquée la date de
naissance de la personne.
Je voudrais qu'apparaisse automatiquement à côté l'âge de la dite personne.
J'ai essayé en inscivant la date de naissance dans un champ que j'ai nommé
d'un signet et à côté j'ai mis un champ dans lequel j'ai essayé une formule
DIFFDATE, puis une autre avec une soustraction des deux dates et ça ne marche
pas !
Peut-être pouvez-vous m'aider ?
Je vous souhaite une bonne journée!
JL


Avatar
Circé
Bonsoir JièL,

JièL avait soumis l'idée :
Bonjoir(c) Orion

des calculs de dates dans Word ???!!! ben bon courage car c'est effectivement
possible, mais loin (très loin) d'être simple

http://www.wopr.com/cgi-bin/w3t/showthreaded.pl?Number$9902

Vous nous direz si vous persistez dans cette idée, c'est juste pour voir à
quel point vous êtes courageux ;-)))))


Sauf que Orion a a parlé d'une fonction, mais il fait a priori une
confusion entre fonction et champ.

La fonction DATEDIFF existe effectivement dans Word et non pas DIFFDATE
d'ailleurs... Et qui dit fonction dit VBA...


Circé l'empoisonneuse
http://faqword.free.fr

"N'y touche pas ! m'as-tu crié
Une seule goutte est mortelle" (Rachel Lythos)

Avatar
Tisane
Bonjour JièL,

des calculs de dates dans Word ???!!! ben bon courage car c'est
effectivement possible, mais loin (très loin) d'être simple
http://www.wopr.com/cgi-bin/w3t/showthreaded.pl?Number$9902
Vous nous direz si vous persistez dans cette idée, c'est juste pour voir à
quel point vous êtes courageux ;-)))))


Vous avez fait pourtant le plus dur...
La formule étant donnée (merci à l'auteur), l'adaptation pour Orion donne
quelque chose comme :

[ Signet_Naissance ] { QUOTE_
{ SET BirthDate { Naissance }}_
{ SET by { BirthDate @ yyyy }}_
{ SET bm { BirthDate @ M }}_
{ SET bd { BirthDate @ d }}_
{ SET yy { DATE @ yyyy }}_
{ SET mm { DATE @ M }}_
{ SET dd { DATE @ d }}_
{ SET md {
=IF((mm=2),28+(mm=2)*((MOD(yy,4)=0)+(MOD(yy,400)=0)-(MOD(yy,100)=0)),31-((mm=4)+(mm=6)+(mm=9)+(mm)))
}}_
{ SET Years { =yy-by-(mm<bm)-(mm=bm)*(dd<bd) }}_
{ SET Months { =MOD(12+mm-bm-(dd<bd),12) }}_
{ SET Days { =MOD(md+dd-bd,md) # 0 }}_
"Age : { Years } an{ IF { Years } <= 1 "" s }"}

Pour obtenir :
[ 01/01/1970 ] Age : 36 ans
J'ai fait abstraction des mois et jours, rarement vu dans les formulaires,
sauf s'ils concernent des nouveaux-nés ;-)

A l'attention d'Orion :
[ Signet_Naissance ] = ton champ nommé Naissance (pour éviter d'écraser le
signet, je te conseille de placer un espace avant et un après et de les
englober dans le signet. Pour afficher le symbole des signets : menu Outils
| Options, onglet [Affichage], Signets)
Le plus difficile, c'est de "copier" la formule ci-dessus, car il ne faut
pas taper les { }, mais les obtenir par <Ctrl><F9>.
Tu peux t'en sortir assez rapidement en collant la formule dans Word, faire
un rechercher/remplacer de "{" par rien et de "}" par rien.
Les "_" représentent un changement de ligne (<Maj><Entrée>) et non un
changement de paragraphe. En fait toute la formule pourrait être sur une
seule ligne mais la lecture serait plus difficile.
Tu peux faire un autre rechercher/remplacer de _^p par ^l mais vu le peu de
lignes concernées je ne suis pas sûre que cela vaille la peine.
Sélectionne ensuite chaque champ et son contenu et appuie sur <Ctrl><F9>.

Pour actualiser, fais un aperçu avant impression ou <Ctrl><A> pour
sélectionner ton document et <F9>.
Cela paraît un peu lourd (on est dans un traitement de texte), mais c'est
fait une fois pour toute ;-)
Le tout est perfectible, cela va de soi.

--
Tisane


Bonjoour,
j'utilise Word 2002
J'ai un document type d'identité dans lequel est indiquée la date de
naissance de la personne.
Je voudrais qu'apparaisse automatiquement à côté l'âge de la dite
personne.
J'ai essayé en inscivant la date de naissance dans un champ que j'ai
nommé d'un signet et à côté j'ai mis un champ dans lequel j'ai essayé une
formule DIFFDATE, puis une autre avec une soustraction des deux dates et
ça ne marche pas !
Peut-être pouvez-vous m'aider ?
Je vous souhaite une bonne journée!
JL




Avatar
Tisane
{ SET Months { =MOD(12+mm-bm-(dd<bd),12) }}_
{ SET Days { =MOD(md+dd-bd,md) # 0 }}_

A supprimer dans la mesure où on prend seulement l'année.
Elle finira par faire une ligne ;-)

--
Tisane

Bonjour JièL,

des calculs de dates dans Word ???!!! ben bon courage car c'est
effectivement possible, mais loin (très loin) d'être simple
http://www.wopr.com/cgi-bin/w3t/showthreaded.pl?Number$9902
Vous nous direz si vous persistez dans cette idée, c'est juste pour voir
à quel point vous êtes courageux ;-)))))


Vous avez fait pourtant le plus dur...
La formule étant donnée (merci à l'auteur), l'adaptation pour Orion donne
quelque chose comme :

[ Signet_Naissance ] { QUOTE_
{ SET BirthDate { Naissance }}_
{ SET by { BirthDate @ yyyy }}_
{ SET bm { BirthDate @ M }}_
{ SET bd { BirthDate @ d }}_
{ SET yy { DATE @ yyyy }}_
{ SET mm { DATE @ M }}_
{ SET dd { DATE @ d }}_
{ SET md {
=IF((mm=2),28+(mm=2)*((MOD(yy,4)=0)+(MOD(yy,400)=0)-(MOD(yy,100)=0)),31-((mm=4)+(mm=6)+(mm=9)+(mm)))
}}_
{ SET Years { =yy-by-(mm<bm)-(mm=bm)*(dd<bd) }}_
{ SET Months { =MOD(12+mm-bm-(dd<bd),12) }}_
{ SET Days { =MOD(md+dd-bd,md) # 0 }}_
"Age : { Years } an{ IF { Years } <= 1 "" s }"}

Pour obtenir :
[ 01/01/1970 ] Age : 36 ans
J'ai fait abstraction des mois et jours, rarement vu dans les formulaires,
sauf s'ils concernent des nouveaux-nés ;-)

A l'attention d'Orion :
[ Signet_Naissance ] = ton champ nommé Naissance (pour éviter d'écraser
le signet, je te conseille de placer un espace avant et un après et de les
englober dans le signet. Pour afficher le symbole des signets : menu
Outils | Options, onglet [Affichage], Signets)
Le plus difficile, c'est de "copier" la formule ci-dessus, car il ne faut
pas taper les { }, mais les obtenir par <Ctrl><F9>.
Tu peux t'en sortir assez rapidement en collant la formule dans Word,
faire un rechercher/remplacer de "{" par rien et de "}" par rien.
Les "_" représentent un changement de ligne (<Maj><Entrée>) et non un
changement de paragraphe. En fait toute la formule pourrait être sur une
seule ligne mais la lecture serait plus difficile.
Tu peux faire un autre rechercher/remplacer de _^p par ^l mais vu le peu
de lignes concernées je ne suis pas sûre que cela vaille la peine.
Sélectionne ensuite chaque champ et son contenu et appuie sur <Ctrl><F9>.

Pour actualiser, fais un aperçu avant impression ou <Ctrl><A> pour
sélectionner ton document et <F9>.
Cela paraît un peu lourd (on est dans un traitement de texte), mais c'est
fait une fois pour toute ;-)
Le tout est perfectible, cela va de soi.

--
Tisane


Bonjoour,
j'utilise Word 2002
J'ai un document type d'identité dans lequel est indiquée la date de
naissance de la personne.
Je voudrais qu'apparaisse automatiquement à côté l'âge de la dite
personne.
J'ai essayé en inscivant la date de naissance dans un champ que j'ai
nommé d'un signet et à côté j'ai mis un champ dans lequel j'ai essayé
une formule DIFFDATE, puis une autre avec une soustraction des deux
dates et ça ne marche pas !
Peut-être pouvez-vous m'aider ?
Je vous souhaite une bonne journée!
JL







Avatar
Tisane
Une dernière avant les "UV"...
Remplace partout les virgules par des points virgules, si ton séparateur de
liste déclaré dans Windows est le ";" (par défaut, lors d'une configuration
française).
Si tu utilises la version complète du code de champ (avec mois et jours), tu
auras des messages d'erreur.

--
Tisane

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

{ SET Months { =MOD(12+mm-bm-(dd<bd),12) }}_
{ SET Days { =MOD(md+dd-bd,md) # 0 }}_

A supprimer dans la mesure où on prend seulement l'année.
Elle finira par faire une ligne ;-)

--
Tisane

Bonjour JièL,

des calculs de dates dans Word ???!!! ben bon courage car c'est
effectivement possible, mais loin (très loin) d'être simple
http://www.wopr.com/cgi-bin/w3t/showthreaded.pl?Number$9902
Vous nous direz si vous persistez dans cette idée, c'est juste pour voir
à quel point vous êtes courageux ;-)))))


Vous avez fait pourtant le plus dur...
La formule étant donnée (merci à l'auteur), l'adaptation pour Orion donne
quelque chose comme :

[ Signet_Naissance ] { QUOTE_
{ SET BirthDate { Naissance }}_
{ SET by { BirthDate @ yyyy }}_
{ SET bm { BirthDate @ M }}_
{ SET bd { BirthDate @ d }}_
{ SET yy { DATE @ yyyy }}_
{ SET mm { DATE @ M }}_
{ SET dd { DATE @ d }}_
{ SET md {
=IF((mm=2),28+(mm=2)*((MOD(yy,4)=0)+(MOD(yy,400)=0)-(MOD(yy,100)=0)),31-((mm=4)+(mm=6)+(mm=9)+(mm)))
}}_
{ SET Years { =yy-by-(mm<bm)-(mm=bm)*(dd<bd) }}_
{ SET Months { =MOD(12+mm-bm-(dd<bd),12) }}_
{ SET Days { =MOD(md+dd-bd,md) # 0 }}_
"Age : { Years } an{ IF { Years } <= 1 "" s }"}

Pour obtenir :
[ 01/01/1970 ] Age : 36 ans
J'ai fait abstraction des mois et jours, rarement vu dans les
formulaires, sauf s'ils concernent des nouveaux-nés ;-)

A l'attention d'Orion :
[ Signet_Naissance ] = ton champ nommé Naissance (pour éviter d'écraser
le signet, je te conseille de placer un espace avant et un après et de
les englober dans le signet. Pour afficher le symbole des signets : menu
Outils | Options, onglet [Affichage], Signets)
Le plus difficile, c'est de "copier" la formule ci-dessus, car il ne faut
pas taper les { }, mais les obtenir par <Ctrl><F9>.
Tu peux t'en sortir assez rapidement en collant la formule dans Word,
faire un rechercher/remplacer de "{" par rien et de "}" par rien.
Les "_" représentent un changement de ligne (<Maj><Entrée>) et non un
changement de paragraphe. En fait toute la formule pourrait être sur une
seule ligne mais la lecture serait plus difficile.
Tu peux faire un autre rechercher/remplacer de _^p par ^l mais vu le peu
de lignes concernées je ne suis pas sûre que cela vaille la peine.
Sélectionne ensuite chaque champ et son contenu et appuie sur <Ctrl><F9>.

Pour actualiser, fais un aperçu avant impression ou <Ctrl><A> pour
sélectionner ton document et <F9>.
Cela paraît un peu lourd (on est dans un traitement de texte), mais c'est
fait une fois pour toute ;-)
Le tout est perfectible, cela va de soi.

--
Tisane


Bonjoour,
j'utilise Word 2002
J'ai un document type d'identité dans lequel est indiquée la date de
naissance de la personne.
Je voudrais qu'apparaisse automatiquement à côté l'âge de la dite
personne.
J'ai essayé en inscivant la date de naissance dans un champ que j'ai
nommé d'un signet et à côté j'ai mis un champ dans lequel j'ai essayé
une formule DIFFDATE, puis une autre avec une soustraction des deux
dates et ça ne marche pas !
Peut-être pouvez-vous m'aider ?
Je vous souhaite une bonne journée!
JL










Avatar
Orion
J'ai cherché plusieurs jours (à multiplier par plusieurs heures) la réponse,
sans la trouver évidemment et là, en moins de 12 heures, j'en ai plusieurs
qui fonctionnent !!
Je remercie beaucoup Jièl Circé et (3 fois) Tisane.
Comme j'en suis au stade du Néenderthal en informatique je ne pourrais pas
vous renvoyer l'ascenceur mais je vous promets que lorsque j'irai sur le site
si je vois vos pseudos j'aurai une petite pensée !
Merci.