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

Calcul de l'âge

5 réponses
Avatar
Jocelyne
Bonjour à tous,

On m'avait donné la formule pour calculer l'âge exacte avec un code de champ
dans Word et c'est merveilleux.

Cependant à l'usage, je m'aperçois que l'âge ne se calcule pas bien lorsque
l'année est plus petit que 1930.

Malheurseusement, ma force n'est pas dans le calcul et je ne sais pas
comment corriger la formule pour avoir un résultat exact.

Voici le contenu du code :

{ 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=11)))
} }
{ 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 } " }

Est-ce que quelqu'un pourrait m'aider à solutionner cette formule si c'est
possible?

Merci

5 réponses

Avatar
Geo
Bonjour

Bonjour à tous,

On m'avait donné la formule pour calculer l'âge exacte avec un code de champ
dans Word et c'est merveilleux.

Cependant à l'usage, je m'aperçois que l'âge ne se calcule pas bien lorsque
l'année est plus petit que 1930.

Malheurseusement, ma force n'est pas dans le calcul et je ne sais pas
comment corriger la formule pour avoir un résultat exact.



A la lecture, on ne voit pas trop pourquoi, ça ne fonctionne pas.
Pouvez vous mettre un fichier Word avec le champ sur www.cjoint.com ?
ça nous évitera de faire des erreurs de refrappe.

--
A+
Avatar
Jocelyne
Bonjour Geo et merci de vous pencher sur mon problème.

J'ai joint mon fichier avec le lien que vous m'avez donnée mais je ne sais
pas trop comment ça fonctionne pour vous le transmettre. Espérons que ce sera
la bonne façon.

http://cjoint.com/?fsocps4vLi

Jocelyne
"Geo" a écrit :

Bonjour

> Bonjour à tous,
>
> On m'avait donné la formule pour calculer l'âge exacte avec un code de champ
> dans Word et c'est merveilleux.
>
> Cependant à l'usage, je m'aperçois que l'âge ne se calcule pas bien lorsque
> l'année est plus petit que 1930.
>
> Malheurseusement, ma force n'est pas dans le calcul et je ne sais pas
> comment corriger la formule pour avoir un résultat exact.

A la lecture, on ne voit pas trop pourquoi, ça ne fonctionne pas.
Pouvez vous mettre un fichier Word avec le champ sur www.cjoint.com ?
ça nous évitera de faire des erreurs de refrappe.

--
A+





Avatar
Geo
Bonjour Jocelyne

J'ai joint mon fichier avec le lien que vous m'avez donnée mais je ne sais
pas trop comment ça fonctionne pour vous le transmettre.



Impeccable.

Si vous mettez vos dates complètes 16-08-1929, ça fonctionne bien.
Il semble que le format à yyyy interprète différemment une date
incomplète.
A première vue il considère que la date est comprise entre les 70 ans
avant aujourd'hui et 30 après.

Le mieux est de compléter vos dates, car cela pourrait être 1829, sinon
on peut modifier le champ pour ajouter le 19 qui manque.
La difficulté est de préciser la règle dans les différents cas qui se
présentent.
Exemples :
31-5-09 : 1909 ou 2009 ?
31-5-08 : 1908 ou 2008 ?

--
A+
Avatar
Jocelyne
Bonjour,

Je n'avais pas pensé que le format de l'année causait le problème, mais si
on y pense un peu, c'est logique. Comme vous le dites, l'ordinateur ne sait
pas quelle est l'année utilisée dans le calcul.

Alors, je vais devoir changer le format dans le "userform" qui reporte la
date de naissance.

Une fois de plus vous me sauver bien du temps.

Merci de votre précieuse aide!

Jocelyne

"Geo" a écrit :

Bonjour Jocelyne

> J'ai joint mon fichier avec le lien que vous m'avez donnée mais je ne sais
> pas trop comment ça fonctionne pour vous le transmettre.

Impeccable.

Si vous mettez vos dates complètes 16-08-1929, ça fonctionne bien.
Il semble que le format à yyyy interprète différemment une date
incomplète.
A première vue il considère que la date est comprise entre les 70 ans
avant aujourd'hui et 30 après.

Le mieux est de compléter vos dates, car cela pourrait être 1829, sinon
on peut modifier le champ pour ajouter le 19 qui manque.
La difficulté est de préciser la règle dans les différents cas qui se
présentent.
Exemples :
31-5-09 : 1909 ou 2009 ?
31-5-08 : 1908 ou 2008 ?

--
A+





Avatar
Circé
Bonjour,

Juste à titre indicatif, il s'agit d'un parti-pris décidé par
Microsoft, en particulier pour Excel, mais on voit que la règle
fonctionne de la même manière pour Word :

- Tout ce qui est compris entre 30 et 29 se traduit par 1930 jusqu'à
2029.
- Donc une date saisie sur 2 digits qui serait par exemple 28 serait
traduite par 2028 et non 1928
- Et une date saisie sur 2 digits qui serait par exemple 32 serait
traduite par 1932 et non 2032.

Voilà, c'était juste pour apporter un éclaircissement.
On peut retrouver les explications ici :
http://support.microsoft.com/kb/302768/fr

Circé
http://faqword.fr


Jocelyne a exprimé avec précision :
Bonjour,

Je n'avais pas pensé que le format de l'année causait le problème, mais si
on y pense un peu, c'est logique. Comme vous le dites, l'ordinateur ne sait
pas quelle est l'année utilisée dans le calcul.

Alors, je vais devoir changer le format dans le "userform" qui reporte la
date de naissance.

Une fois de plus vous me sauver bien du temps.

Merci de votre précieuse aide!

Jocelyne

"Geo" a écrit :

Bonjour Jocelyne

J'ai joint mon fichier avec le lien que vous m'avez donnée mais je ne sais
pas trop comment ça fonctionne pour vous le transmettre.



Impeccable.

Si vous mettez vos dates complètes 16-08-1929, ça fonctionne bien.
Il semble que le format à yyyy interprète différemment une date
incomplète.
A première vue il considère que la date est comprise entre les 70 ans
avant aujourd'hui et 30 après.

Le mieux est de compléter vos dates, car cela pourrait être 1829, sinon
on peut modifier le champ pour ajouter le 19 qui manque.
La difficulté est de préciser la règle dans les différents cas qui se
présentent.
Exemples :
31-5-09 : 1909 ou 2009 ?
31-5-08 : 1908 ou 2008 ?

--
A+