Evenement Exit d'un textbox
Bonjour,
J'ai un Userform avec plein de textbox. Certain attendent des noms et d'autre des dates. Ils sont regroupé dans des controls Frame pour plus de lisibilité.
Je me sert de l'événement Exit des TextBox pour vérifier que la saisie de l'utilisateur correspond bien a une date.
Private Sub TextBox_DateRappel_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = VerificationDate(Me.TextBox_DateRappel)
End SubPrivate Sub TextBox_Age_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = VerificationDate(Me.TextBox_Age)
End SubPrivate Function VerificationDate(ctrl As Control)
Dim reponse As Variant
If ctrl = "" Then 'si la case est vide on ne fait rien
ElseIf IsDate(ctrl) Then 'si la case est une date on le met au format date
ctrl = Format(CDate(ctrl), "dd/mm/yy")
Else 'si c'est pas une date on demande a corriger
reponse = MsgBox(ctrl & " n'est pas une date!" & Chr(10) & "veuillez corriger", vbOKCancel + vbExclamation + vbDefaultButton1 + vbApplicationModal, "Erreur de saisie")
If reponse = 1 Then 'si ok on corrige
Cancel = True
Else
ctrl = ""
Cancel = False
End If
End If
VerificationDate = Cancel
End FunctionJ'ai remarqué que mon code agissait étrangement par moment. En le faisant se dérouler au pas a pas j'ai découvert que certain événement exit se déclenchaient lors de l'entré dans le textbox correspondant et non à la sortie. je ne comprends pas pourquoi.
Je vous joint le fichier
Si vous avez des idées je vous remercie
- Messages
- 1'794
- Excel
- 2010
- Inscrit
- 25/08/2014
- Emploi
- Consultant VB6 / SQL / VBA / Excel / Access
Bonjour,
Pour un contrôle de saisie, l'événement "_AfterUpdate" est plus approprié.
Il se déclenche uniquement lors de la modification de la zone. L'événement "_Exit" se déclenche systématiquement lorsque la zone perd le focus, même si la valeur n'a pas été modifiée. En tabulant, on recommence à contrôler des zones dont le contenu n'a pas varié.
Cela ne répond pas directement à la question, il s'agit juste d'une préconisation
Bouben