Bonsoir,
Pour calculer l'age à partir d'une date de naissance, j'ai mis en place la procédure ci-dessus. Ça fonctionne sans fonctionner.
exemple si je suis mis le 1er novembre 1997, le résultat me donne 18 ans, mais avant cette date j'ai 17 ans. Y a t-un moyen pour remédier à ce dysfonctionnement
'Calcul d'age
Private Sub TextBox_né_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'à la sortie de la textbox "TextBox_né"
Dim ag As Integer 'déclare la variable ag (ÂGe)
With Me.TextBox_né 'prend en compte la textbox "TextBox_né"
If .Value = "" Then 'condition 1 : si sa valeur est vide
Exit Sub 'sort de la procédure
Else 'sinon (condition 1)
On Error Resume Next 'gestion des erreurs
ag = CInt((Date - CDate(Me.TextBox_né)) / 365) 'définit l'âge ag
If Err <> 0 Then 'condition 2 : si une erreur a été générée
MsgBox "Date non valide !" 'message
Cancel = True 'annule la sortie de la textbox
'sélectionne le texte de la texbox
.SelStart = 0 'début de la sélection
.SelLength = Len(.Value) 'longueur de l sélection
Exit Sub 'sort de la procédure
End If 'fin de la condition 2
On Error GoTo 0 'annule la gestion des erreurs
End If 'fin de la condition 1
' besoin d'une dérogation pour les - 18 ans
End With 'fin de la prise en compte de la textbox "TextBox_Date"
Me.TextBox_age.Value = ag 'place l'âge dans la textbox "TextBox_age"
Me.ComboBox_Besoin.Value = IIf(ag < 18, "Oui", "Non")
Me.ComboBox_Obtention.Locked = IIf(Me.ComboBox_Obtention.Value = "Non", True, False)
Me.ComboBox_Obtention.TabStop = IIf(Me.ComboBox_Besoin.Value = "Non", False, True)
End Sub
Merci d'avance
M.D
Pour calculer l'age à partir d'une date de naissance, j'ai mis en place la procédure ci-dessus. Ça fonctionne sans fonctionner.
exemple si je suis mis le 1er novembre 1997, le résultat me donne 18 ans, mais avant cette date j'ai 17 ans. Y a t-un moyen pour remédier à ce dysfonctionnement
'Calcul d'age
Private Sub TextBox_né_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'à la sortie de la textbox "TextBox_né"
Dim ag As Integer 'déclare la variable ag (ÂGe)
With Me.TextBox_né 'prend en compte la textbox "TextBox_né"
If .Value = "" Then 'condition 1 : si sa valeur est vide
Exit Sub 'sort de la procédure
Else 'sinon (condition 1)
On Error Resume Next 'gestion des erreurs
ag = CInt((Date - CDate(Me.TextBox_né)) / 365) 'définit l'âge ag
If Err <> 0 Then 'condition 2 : si une erreur a été générée
MsgBox "Date non valide !" 'message
Cancel = True 'annule la sortie de la textbox
'sélectionne le texte de la texbox
.SelStart = 0 'début de la sélection
.SelLength = Len(.Value) 'longueur de l sélection
Exit Sub 'sort de la procédure
End If 'fin de la condition 2
On Error GoTo 0 'annule la gestion des erreurs
End If 'fin de la condition 1
' besoin d'une dérogation pour les - 18 ans
End With 'fin de la prise en compte de la textbox "TextBox_Date"
Me.TextBox_age.Value = ag 'place l'âge dans la textbox "TextBox_age"
Me.ComboBox_Besoin.Value = IIf(ag < 18, "Oui", "Non")
Me.ComboBox_Obtention.Locked = IIf(Me.ComboBox_Obtention.Value = "Non", True, False)
Me.ComboBox_Obtention.TabStop = IIf(Me.ComboBox_Besoin.Value = "Non", False, True)
End Sub
Merci d'avance
M.D