Bonjour,
Prenons un UserForm, dans lequel on dessine 2 TextBox : TextBox1 et TextBox2.
Le code de cet UserForm :
Option Explicit
Private Sub TextBox1_AfterUpdate()
Debug.Print "AfterUpdate", TextBox1.Value
End Sub
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Debug.Print "BeforeUpdate", TextBox1.Value
End Sub
Private Sub TextBox1_Change()
Debug.Print "change", TextBox1.Value
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Debug.Print "Exit", TextBox1.Value
End Sub
Le résultat, visible dans la fenêtre exécution (Affichage/fenêtre Exécution) :
change a
change az
change aze
change azer
change azert
change azerty
BeforeUpdate azerty
AfterUpdate azerty
Exit azerty
Tu vois donc que tu peux disposer de 3 procédures événementielles pour gérer ce que tu veux. S'il s'agit de tester le contenu du TextBox pour, éventuellement en bloquer la sortie (erreur de saisie), utilise l'événement BeforeUpdate qui dispose d'un paramètre "Cancel".
Exemple :
Empêche la sortie du TextBox1 si, dans celui-ci, n'est pas saisi le mot "azerty" :
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = TextBox1.Value <> "azerty"
End Sub