Problème SetFocus sur la validation ou non d'une TextBox

Fermé
dc59 - 24 juin 2016 à 15:17
f894009 Messages postés 17221 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 4 janvier 2025 - 24 juin 2016 à 16:13
Bonjour,

Présentation du projet :
TextBox1, de longueur maximale 4 caractères numériques (un code en fait)
TextBox2,
Précision Excel2007 et VB6.3.

L'utilisateur doit saisir dans la TextBox1 un code numérique obligatoirement de 4 caractères numériques.

A la sortie de cette TextBox1 et avant d'accéder à la TextBox2, je souhaite faire un test sur la longueur du code saisi, et si ce code saisi ne comporte pas 4 caractères exactement, j'affiche une MsgBox d'erreur.

En validant cette MsgBox, le focus doit rester sur la TextBox1 et pas aller sur la TextBox2, et c'est là où je ne parvient pas à conserver sur la TextBox1 malgré l'utilisation de TextBox1.SetFocus.

J'ai essayé avec différents évènements (AfterUpdate, Exit...même TextBox2.Enter) et rien n'y fait, cela ne fonctionne pas comme souhaité.

Voici le code actuel utilisé :

Private Sub txtBOFI_Exit()
If txtBOFI.TextLength < 4 Then
MsgBox "Nombre de caractères inférieurs à 4 !!!!"
txtBOFI.SetFocus
End If
End Sub


Par avance, merci de votre aide sur ce dossier qui commence à me prendre un peu la tête.
Cdlt

1 réponse

f894009 Messages postés 17221 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 4 janvier 2025 1 712
Modifié par f894009 le 24/06/2016 à 16:14
Bonjour,

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    If Len(TextBox1) < 4 Then
        Cancel = True
        MsgBox "Nombre de caractères inférieurs à 4 !!!!"
        TextBox1.SetFocus
    End If
End Sub


Dans tout les cas, pour que ca marche, il faut activer un autre objet de l'UF
0