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
23 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
131
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
131
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
23 août 2018
20
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