Problème dans une textbox dans userform

Bonjour à tous,

Je viens vers vous car j'ai un problème de code VBA dans textbox1.

Dans le userform3 quand je clique sur "optionbutton1" << numéro>> dans la textbox1, si je rentre un numéro qui n'est pas dans la base de données, il me met un message, ce que je souhaite.

Sur "optionbutton2" <<nom>> dans la textbox1, si je mets plus de 3 lettres, il me met le même message, ce qui n'est pas correct.

Est-il possible, dans le code suivant, de lui notifier que si ce sont des lettres, il ne doit pas réagir ?

Bonjour,

C'est ici qu'il te faut modifier :

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    Dim t$, Lig&
    With TextBox1
        If Len(.Value) = 4 Then KeyAscii = 0: Exit Sub
        t = Mid(.Value & Chr(KeyAscii), 1, 5)
        If Len(t) = 4 Then
            With Application: Lig = .IfError(.Match(Val(t), Feuil2.[B:B], 0), 0): End With
            If Lig = 0 Then
                MsgBox "CE NUMERO N'EXISTE PAS", vbExclamation, "A CHANGER": t = ""
            End If
        End If
        .Value = t
        KeyAscii = 0
    End With
End Sub

Peut-être comme ceci :

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If OptionButton2.Value = True Then Exit Sub
    Dim t$, Lig&
    With TextBox1
        If Len(.Value) = 4 Then KeyAscii = 0: Exit Sub
        t = Mid(.Value & Chr(KeyAscii), 1, 5)
        If Len(t) = 4 Then
            With Application: Lig = .IfError(.Match(Val(t), Feuil2.[B:B], 0), 0): End With
            If Lig = 0 Then
                MsgBox "CE NUMERO N'EXISTE PAS", vbExclamation, "A CHANGER": t = ""
            End If
        End If
        .Value = t
        KeyAscii = 0
    End With
End Sub

Bonjour à toi,

Je n'avais pas pensé à faire ceci au départ.

Je te remercie de ta réponse rapide,

Cordialement

Désolé, je vais encore t'embêter.

Dans le même userform3, j'ai un souci avec le code suivant qui se trouve dans "optionbutton2". Quand je tape un nom ensuite, je vais sur "optionbutton1" et que je reviens sur optionbutton2, je souhaiterais qu'il me vide la "listbox1", ce que normalement je lui demande dans le code suivant mais cela ne fonctionne pas.

Pouvez vous me dire d'où vient l'erreur, s'il vous plaît ?

Private Sub OptionButton2_Click()

Me.CommandButton1.Visible = False
Me.Label1.Visible = False
Me.Label2.Visible = True
Me.Label4.Visible = False
Me.ListBox1.Visible = True
Me.TextBox1.Value = ""
Me.ListBox1.Value = ""
Me.TextBox1.SetFocus

End Sub
Me.ListBox1.Visible = True

Ne vide pas la listbox. Ne fait que la masquer...

Essaye :

Private Sub OptionButton2_Click()
Me.CommandButton1.Visible = False

Me.Label1.Visible = False
Me.Label2.Visible = True
Me.Label4.Visible = False

Me.ListBox1.Clear
Me.ListBox1.Visible = True

Me.TextBox1.Value = ""
Me.ListBox1.Value = ""
Me.TextBox1.SetFocus
End Sub

excellent, ça fonctionne, je n'avais pas les yeux ouverts ce matin. Merci de votre aide. Je vous souhaite une bonne journée.

Rechercher des sujets similaires à "probleme textbox userform"