Modifier le caption d'une textbox passée en paramètre dans une fonction
Bonjour
La fonction suivante est destinée à calculer l'age d'une personne en fonction de sa date de naissance insérée dans une textbox, une seconde textbox est destinée à afficher l'age de la personne.
La fonction fonctionne bien à l'exception de la modification du caption de la textbox destinée à recevoir l'age de la personne, pouvez vous me dire ce qui ne va pas svp ?
Code:
calcul_age Me.T3, Me.T4
La date de naissance est dans la textbox nommée T3 et le résultat attendu est dans la textbox T4
impossible de changer le caption de textbox T4 par le biais de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| Private Sub calcul_age(ByRef textbox_date_naissance As msforms.TextBox, ByRef textbox_resultat_age As msforms.TextBox)
Dim dateEntrée As Date
Dim age, NbAnnées, NbMois, nbJours As Integer
If textbox_date_naissance.Value = "" Then Exit Sub
dateEntrée = textbox_date_naissance.Value
NbAnnées = (Year(Now()) - Year(dateEntrée))
NbMois = (Month(Now()) - Month(dateEntrée))
nbJours = (Day(Now()) - Day(dateEntrée))
If NbAnnées > 0 And NbMois > 0 Then
age = NbAnnées
ElseIf NbAnnées > 0 And NbMois = 0 And nbJours >= 0 Then
age = NbAnnées
Else
age = NbMois
End If
textbox_resultat_age.Value = age
If NbAnnées < 1 Then
textbox_resultat_age.Caption = "Mois"
Else
textbox_resultat_age.Caption = "An(s)"
End If
End Sub |
Si je modifie la fonction sans utiliser de paramètres, en spécifiant directement le nom des textboxes accueillant la date de naissance et le résultat, le caption fonctionne bien :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| Private Sub calcul_age()
Dim dateEntrée As Date
Dim age, NbAnnées, NbMois, nbJours As Integer
If T3.Value = "" Then Exit Sub
dateEntrée = T3.Value
NbAnnées = (Year(Now()) - Year(dateEntrée))
NbMois = (Month(Now()) - Month(dateEntrée))
nbJours = (Day(Now()) - Day(dateEntrée))
If NbAnnées > 0 And NbMois > 0 Then
age = NbAnnées
ElseIf NbAnnées > 0 And NbMois = 0 And nbJours >= 0 Then
age = NbAnnées
Else
age = NbMois
End If
T4.Value = age
If NbAnnées < 1 Then
L4.Caption = "Mois"
Else
L4.Caption = "An(s)"
End If
End Sub |