UserForm, TextBox & Controle de saisie
yo
Je suis en train de creer un formulaire (UserForm) en vba pour Excel. J'ai mis en forme celui-ci et inserer des controles de saisie pour chacun des champs avec l'evenement Exit.
J'observe que mes trois premieres textbox(es) sont bien controlees comme escompte et qu'un message d'erreur s'affiche si le formalisme n'est pas respecte, puis impose une nouvelle saisie dans ces memes textbox(es).
Cependant, mes deux dernieres textbox(es) - j'en ai cinq en tout- ne sont controlees qu'apres la pression sur mon bouton Ok (ferme le formulaire). Les messages d'erreur s'affichent a la suite de la fermeture, les uns apres les autres.
Ainsi, on ne boucle pas sur les saisies erronees pour correction.
Je dois preciser que trois ComboBox(es) suivent mes premieres TextBox(es) et precedent les deux dernieres, controlees a posteriori.
J'ai bien essaye d'imposer un retour a la textbox erronee au sein de mon code a l'aide de .SetFocus et de .Accelerator, mais pour le premier, ca ne marche, et c'est impossible pour le second...
Arrivez-vous a cerner le probleme ?
Merci.
userform,textbox et controle saisie
bonjour,
je ne maitrise pas VBA mais il me semble, si j'ai bien compris le problème, que j'aurai écrit le code suivant.
Code:
1 2 3 4 5 6 7 8 9
|
Private Sub TextBoxNumFunk_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBoxNumFunk.Value = "" Or Not IsNumeric(TextBoxNumFunk.Value) Then
msg = MsgBox("Entrez une valeur numérique", vbExclamation, "Erreur saisie")
TextBoxNumFunk.Value = ""
TextBoxNumFunk.SetFocus
Exit Sub ' instruction à voir en fonction du contexte
End If
End Sub |
je ne sais pas ce qu'en pense les connaisseurs ?
cordialement.