Calcul de l'âge

Le
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)))
} }
{ 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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Geo
Le #19353701
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+
Jocelyne
Le #19360091
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+





Geo
Le #19360501
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+
Jocelyne
Le #19361501
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+





Circé
Le #19383181
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+







Publicité
Poster une réponse
Anonyme