Msg Box persistant!!!

  • Initiateur de la discussion Laurent
  • Date de début
L

Laurent

Guest
Bonjour au forum,

Le petit souci de fin de semaine....

Quand je sors de mon Usf j'ai le message "Le N° de Lot fait 4 caractères" qui reste inscrit... Je vois pas pourquoi

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With TextBox1
If .TextLength <> 4 Then
MsgBox "Le N° de Lot fait 4 caractères"
.SelStart = 0
.SelLength = Len(.Text)
Cancel = True
End If
End With
End Sub

Private Sub CommandButton2_Click()
Unload UserForm1
End Sub

Quelqu'un voit-il kékya???

Merci d'avance,

Laurent
 
@

@+Thierry

Guest
Salut Laurent, le Forum

Ce n'est pas grave, c'est juste une erreur de conception en programmation. L'évènement Exit d'un contrôle ne doit jamais servir à utiliser le lancement d'une autre action si directement sans aucun test de vérification de l'état du control.

En fait tel que je vois ce code sans essayer, le MsgBox se déclenchera systématiquement à chaque fois que la TextBox1 perdra le Focus... Même si elle est vide... Le seul test "stoppeur" consiste à ce que le text contenu fasse 4 digits...

Si tu veux persister sur cet évènement "Exit" alors met au moins en première ligne :
If TextBox1 = "" Then Exit Sub

Cela devrait déjà te permettre de sortir de la textBox sans déclencher ton alerte...

Bon "Amusement" avec les évènements !! LoL
@+Thierry
 
M

m.lecxe

Guest
essaie
d'ecrire apres MsgBox .....
Cancel = True

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With TextBox1
If .TextLength <> 4 Then
MsgBox "Le N° de Lot fait 4 caractères"

Cancel = True

.SelStart = 0
.SelLength = Len(.Text)
Cancel = True
End If
End With
End Sub
 
L

Laurent

Guest
Merci @+Thierry et m.Lexce...

J'ai résolu "provisoirement" mon pb avec le message de @+thierry.
C'est sur que je rentre dans le monde merveilleux mais légerment tordu des évenements... lol

Merci pour les encouragements

Bon WE à tous

Laurent
 

Discussions similaires