Vba excel : Forcer écriture dans textbox

Résolu
Bonjour,

débutante en vba je cherche à forcer l'écriture dans une de mes textbox.

Je souhaiterais imposer en premier la lettre "H" puis ensuite forcer une saisie uniquement numérique !

Merci d'avance pour votre aide !

MT

2 réponses

  1. Modérateur
    Bonjour,
    Essayez voir ceci :
    Private Sub TextBox1_GotFocus() 
    If Len(TextBox1) = 0 Then TextBox1 = "H" 
    End Sub 
    
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 
    If InStr("1234567890", Chr(KeyAscii)) = 0 Then KeyAscii = 0 
    End Sub

    Cordialement,
    Franck P
    1. Tout d'abord merci pour votre réponse !

      ensuite la saisie numérique marche très bien mais le code concernant le "H" du départ ne fonctionne pas ... = /

      Merci pour votre précieuse aide !
    2. Modérateur
      1- avez vous cliqué dans le textbox?
      2- ce textbox est situé ou? feuille ou userform?
    3. Ce textbox est situé dans un userform et ou j'ai bien cliqué dans celui-ci ... =/
    4. Modérateur
      Alors, dans ta procédure USerForm_Initialize ajout cette ligne :
      Private Sub UserForm_Initialize()
      'du code bla bla
      TextBox1 = "H"
      'du code bla bla
      End Sub

      Et bien sur conserve la saisie uniquement numérique par :
      Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 
      If InStr("1234567890", Chr(KeyAscii)) = 0 Then KeyAscii = 0 
      End Sub
      
    5. Ca fonctionne très bien !!!

      Un grand merci !
      bonne fin de journée !
  2. Bonjour,

    Ce sujet tombe parfaitement !
    Mais je voudrai ajouter une petite condition, alors je tente ma chance aussi.
    Serait-il possible que le H apparaisse dans la TextBox à l'ouverture du formulaire ( en plus de la condition qu'il ne s'efface pas et que nous devons écrire uniquement des chiffres après ) ...

    Merci !
    1. Modérateur
      Bonjour,

      A l'ouverture du formulaire.
      Donc, lors de l'événement Initialize de l'Userform...
      Donc :
      Private Sub UserForm_Initialize()
          TextBox1.Value = "H"
      End Sub