Fix et int

Résolu
yanickfrqu Messages postés 5 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 18 juillet 2006 - 18 juil. 2006 à 14:28
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 21 juil. 2006 à 11:00
Bonjour à tous,

J'ai un petit probléme,  je cherche à arrondir à l'année suppérieur le résultat d'un calcule entre une date [D] (dite de naissance ) et la valeur Now.
mon code :

Dim calcul As Variant
A = DateDiff("y", [D], Now())
calcul = (A / 365)
A = Left(calcul, 2)

Exemple avec ce code :
- Une personne née le 01/07/98 [D] à 8 ans [A] le 18/07/06
- Une personne née le 01/08/98 [D] à 7 ans [A] le 18/07/06

le but est de de faire en sorte que toutes les personnes née en 98 est 8 ans et ainsi de suite pour 99 = 7ans, 00=6ans

Merci d'avance

6 réponses

yanickfrqu Messages postés 5 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 18 juillet 2006
18 juil. 2006 à 15:21
J'ai la réponse :
Vraiment

A :  l'âge
D : Date de naissance
Le but étant de calculer l'âge sur l'année de naissance et non pas pas sur le mois et/ou le jour.
Exemple toute personne née en 98 à 8 ans cette année

A = DateDiff("y", [D], Now())
calcul = (A / 365)
A = Left(calcul, 3)
A = Format(A, "#0")
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 juil. 2006 à 14:30
Ceci ne marche pas ?

Dim calcul As Variant
A = DateDiff("y", [D], Now())
If Day([D]) <> Day(Now()) Then A = A + 1
0
yanickfrqu Messages postés 5 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 18 juillet 2006
18 juil. 2006 à 14:35
He non justement.
Je ne comprend pas
J'ai bien essayé ça mais cela ne marche pas non plus : ici
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 juil. 2006 à 14:40
Bah pourtant, un datediff("y") te donne la différence entre les 2 dates en années !
Fais ceci pour vérifier :
MsgBox [D]
MsgBox Now()
MsgBox DateDiff("y", [D], Now())

Voir déjà les dates qu'il te donne ainsi que le résultat du datediff.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yanickfrqu Messages postés 5 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 18 juillet 2006
18 juil. 2006 à 14:57
La valeur retournée est bonne. le probléme c'est d'arrondir à l'entier suppérieur exemple

[ D] = 31/12/98
[now] = 18/07/06
[A] = 7.5

le resultat souhaité est :
[A] = 8
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
21 juil. 2006 à 11:00
Disons que la date à vérifier est en A1

Rep = Year(Now) - Year(Range("A1"))
MsgBox Rep & " ans"

MPi
0
Rejoignez-nous