Controler les entrées utilisateurs dans un Userform
Bonjour à tous,
À la place d'utiliser une InputBox je souhaite utiliser un Userform plus complet et plus souple. Mai comment puis je contrôler les entrées que tape l'utilisateur dans les zones de texte?
Dans la zone Nom je voudrais que l'utilisateur ne puisse rentrer que des lettres en majuscule
Dans la zone Prénom je voudrais que l'utilisateur ne puisse rentrer que des lettres
Dans la zone Pseudo je voudrais que l'utilisateur ne puisse rentrer que des lettres et/ou des chiffres
Dans la zone Age je voudrais que l'utilisateur ne puisse rentrer que des Chiffres.
Bien sûr en VBA
re ok un fonction suisse alors pour le keypress
Bonne idée la fonction couteau suisse pour tout les textboxs
du reste on peut toujours le faire dans le keypress!! dans le meme esprit
code evenement bouton
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Private Sub nom_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'rien que des lettres et forcées en Majuscule (patronime)pas besoins de verouiller la touche maj
KeyAscii = autorized_char(nom, "[A-Z-]", KeyAscii, True)
End Sub
Private Sub prenom_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'rien que des lettres ou un tiret et en nom propre
KeyAscii = autorized_char(prenom, "[a-zâàéèîîôù -]", KeyAscii, , vbProperCase)
End Sub
Private Sub pseudo_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'pseudo que des lettres ou des chiffres
KeyAscii = autorized_char(pseudo, "[A-Z-a-zâàéèîîôù0123456789]", KeyAscii)
End Sub
Private Sub codemdp_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'rien que des numero ( code mdp)
KeyAscii = autorized_char(codemdp, "[0-9]", KeyAscii)
End Sub |
fonction suisse ;)
Code:
1 2 3 4 5 6
|
Private Function autorized_char(ctrl, filtre, kAsC, Optional MaJ As Boolean = False, Optional Formate = 0) As Long
kAsC = IIf(MaJ = True, Asc(ucase(Chr(kAsC))), kAsC)
If Chr(kAsC) Like filtre Then autorized_char = kAsC Else kAsC = 0
If Formate <> 0 Then ctrl.Text = StrConv(ctrl.Text, Formate)
End Function |
;)