écrire que les numéro dans une textbox

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

1 réponse

  1. PlacageGranby Messages postés 402 Statut Membre 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
    1. PlacageGranby Messages postés 402 Statut Membre 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
    2. abdou4700 Messages postés 14 Statut Membre
       
      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
      1. PlacageGranby Messages postés 402 Statut Membre 26 > abdou4700 Messages postés 14 Statut Membre
         
        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
      2. abdou4700 Messages postés 14 Statut Membre > PlacageGranby Messages postés 402 Statut Membre
         
        merci PlacageGranby
        0