Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[RESOLU] : Calcul age en vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MADAGASCAR

XLDnaute Occasionnel
Bonjour Excel downloads
Bonjour tout le monde
Svp est ce qu'on peut calculer l'age en vba ( nombre d'annees .. mois et jours ) il suffit de tapper la date de naissance dans textbox1 ..
Merci beaucoup d'avance pour l'aide
Cordialement
MADA
 

Pièces jointes

Dernière édition:
Re : Calcul age en vba

Bonjour MADAGASCAR,

Testez ceci :

Code:
Private Sub TextBox1_Change()
TextBox2 = "": TextBox3 = "": TextBox4 = ""
If Not IsDate(TextBox1) Then Exit Sub
If CDate(TextBox1) > Date Then Exit Sub
Dim test As Boolean, dat As Date
test = DateAdd("yyyy", Year(Date) - Year(TextBox1), TextBox1) > Date
TextBox2 = Year(Date) - Year(TextBox1) + test
dat = DateAdd("yyyy", TextBox2, TextBox1)
test = Day(TextBox1) > Day(Date)
TextBox3 = DateDiff("m", dat, Date) + test
TextBox4 = DateDiff("d", DateAdd("m", TextBox3, dat), Date)
End Sub
A+
 
Dernière édition:
Re : Calcul age en vba

Bonsoir job75
Vraiment BRAVO
Merci beaucuop pour votre efficace code
C'est parfaitement résolu
Mille fois merci
Cordialement
MADA
 

Pièces jointes

  • Thank-you1.jpg
    269.6 KB · Affichages: 120
  • Thank-you1.jpg
    269.6 KB · Affichages: 118
Dernière édition:
Re : [RESOLU] : Calcul age en vba

Re,

Vous remarquerez cependant que si la date de naissance est un 29 février le nombre de jours n'est pas exact.

J'ai essayé d'y remédier mais ce n'était pas satisfaisant.

A+
 
Dernière édition:
Re : [RESOLU] : Calcul age en vba

Re,

Je pense que ceci est la bonne solution :

Code:
Private Sub TextBox1_Change()
TextBox2 = "": TextBox3 = "": TextBox4 = ""
If Not IsDate(TextBox1) Then Exit Sub
If CDate(TextBox1) > Date Then Exit Sub
Dim test1 As Boolean, test2 As Boolean
test1 = Day(TextBox1) > Day(Date)
test2 = Month(TextBox1) > Month(Date) Or Month(TextBox1) = Month(Date) And test1
TextBox2 = Year(Date) - Year(TextBox1) + test2
TextBox3 = DateDiff("m", TextBox1, Date) - 12 * TextBox2 + test1
TextBox4 = Day(Date) - Day(TextBox1) - test1 * Day(DateSerial(Year(Date), Month(Date), 0))
End Sub
A+
 
Dernière édition:
Re : [RESOLU] : Calcul age en vba

Bonsoir job75
Merci pour votre suivi complet positif a nos sujets..
Moi et ( surement les autres ) j'ai une totale confiance a vos suggestions et vos impeccables solutions
Merci mille fois
Cordialement
MADA
 
Re : [RESOLU] : Calcul age en vba

Bonjour MADAGASCAR, le forum,

Les 2 solutions décomptent les jours de manières différentes.

Mais la solution du post #2 me paraît la meilleure.

En effet la solution du post #6 donne des nombres de jours négatifs quand le jour de naissance est le 30 ou le 31 et que la date du jour est le 1er ou le 2 mars...

Bonne journée.
 
Re : [RESOLU] : Calcul age en vba

Bonjour job75
Bonjour le forum
Merci beaucoup pour votre explication .. j'ai utilisé votre solution du post 2.
Svp pour une derniere question si vous aurez du temps biensure ..est ce qu'on peut calculer l'age à une date precise on ajoutant une autre textbox ..par exemple on tappe la date de naissance ( 20/05/2000 ) et aussi on tappe la date là où je veux calculer l'age par exemple ( 25/08/2015 ) ...
Merci d'avance pour l'aide
Cordialement
MADA
 

Pièces jointes

Re : [RESOLU] : Calcul age en vba

Re,

Il suffit de remplacer Date par TextBox5 ou CDate(TextBox5) :

Code:
Private Sub TextBox1_Change()
TextBox2 = "": TextBox3 = "": TextBox4 = ""
If Not IsDate(TextBox1) Or Not IsDate(TextBox5) Then Exit Sub
If CDate(TextBox1) > CDate(TextBox5) Then Exit Sub
Dim test As Boolean, dat As Date
test = DateAdd("yyyy", Year(TextBox5) - Year(TextBox1), TextBox1) > CDate(TextBox5)
TextBox2 = Year(TextBox5) - Year(TextBox1) + test
dat = DateAdd("yyyy", TextBox2, TextBox1)
test = Day(TextBox1) > Day(TextBox5)
TextBox3 = DateDiff("m", dat, TextBox5) + test
TextBox4 = DateDiff("d", DateAdd("m", TextBox3, dat), TextBox5)
End Sub

Sub TextBox5_Change()
TextBox1_Change
End Sub
A+
 
Re : [RESOLU] : Calcul age en vba

Bonsour® MADA

🙄
c'est une pure satisfaction de l'esprit de vouloir exprimer un âge en années, mois et jours...
les années et mois ne sont pas des unités de valeur fixe (365 ou 366 jr ainsi que 28, 29, 30, 31 jr)

seul l'âge exprimé en jours a de sens mathématique

selon les dates de référence début et fin, un même âge en jours peut s'exprimer différemment en année mois jour

à verifier pour ces dates ... 🙄
 

Pièces jointes

  • Capture.JPG
    42 KB · Affichages: 104
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
602
Réponses
16
Affichages
2 K
Réponses
0
Affichages
374
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…