écrire que les numéro dans une textbox

abdou4700 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
abdou4700 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
comment faire pour écrire que les numéro dans une textbox
et empêcher l'utilisateur d'écrire des lettres
merci d'avance

A voir également:

1 réponse

PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   26
 
Bonjour,

il existe l'évènement keydown pour les textbox

Cet évènement recoit le paramêtre keycode
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
MsgBox KeyCode
End Sub


Donc le chiffre zero est 96 et le neuf est 105, effacer est le 8.

C'est la que je suis rendu dans mes recherches :)
0
PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   26
 
Aussi, j'imagine que tu veux permettre en plus des chiffres, le retour arrière, le supprimer, les flèches et peut être
l'espace (séparateur de millier), les virgules et le points (selon les paramêtres régionaux du pays ou tu habites)
0
abdou4700 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
mais ça marche pas


Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
keycode()
End Sub
End Class
0
PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   26 > abdou4700 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
J'imagine que tu es dans Visual Basic, moi je suis dans Excel VBA (les évènements ont peut-etre des noms différent, et les variable aussi).

Cherche l'évènement de ton textbox qui ressemble a un keydown, ou keypress, tu devrais avoir un paramètre dans cette fonction qui te retourne la touche qui a été enfoncé.

Ensuite tu travail sur ce paramètre pour valider que c'est un code permis. et si ce n'est pas un code valide, assigne à ce paramètre la valeur zero. Le code ascii 0 signifie annuler la frappe,

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
if keycode <> 0 and keycode <> 8 and keycode <> 37 and keycode <> 39 and keycode <> 48 and keycode <> 49 and keycode <> 50 and keycode <> 51 and keycode <> 52 and keycode <> 53 and keycode <> 54 and keycode <> 57 and keycode <> 58 and keycode <> 96 and keycode <> 97 and keycode <> 98 and keycode <> 99 and keycode <> 100 and keycode <> 101 and keycode <> 102 and keycode <> 103 and keycode <> 104 and keycode <> 105 then
keycode = 0
endif
End Sub

Ce code fonctionne pour moi en excel VBA, en VB, ça devrait être sensiblement pareil, tu peux t'en inspirer.

Aussi, mon IF n'est vraiment pas élégant, on peut probablement trouver quelque chose de mieux, et mon IF permet les flèches, les chiffres autant du pad numérique que ceux au dessus des lettres.

Donc, se rappeler que ce n'est pas du code prêt à emporter, il se peut toujours que tu dois l'adapter un peu. l'idée c'est qu'on donner des pistes de solution.
0
abdou4700 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   > PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention  
 
merci PlacageGranby
0