VBA afficher un textbox en fonction d'un combobox

Bonsoir,

je souhaiterai faire apparaitre un TEXTBOX en fonction du choix sélectionné dans un COMBOBOX dans un formulaire de saisie.

Voici mon exemple précis :

Lorsque l'on choisi le type de paiement "Chèque" le TEXTBOX Numéro de chèque doit apparaître.

A l'inverse, si on choisi un autre mode de paiement, ce TEXTBOX Numéro de chèque ne doit pas apparaitre.

Voici la requête que j'ai reussi à faire mais bien évidemment celle-ci ne fonctionne pas puisque lorsque je sélectionne "Chèque" en Type de paiement, le TEXTBOX Numéro de chèque n'apparait pas (il reste donc constamment invisible)

Private Sub UserForm_Initialize()

ComboBox1.List() = Array("Chèque", "Carte Bleue", "Virement", "Prélèvement", "Retrait", "Remise de chèques", "Dépôt d'espèces")

Set Ws = Sheets("COMPTE CHEQUE") 'Correspond au nom de votre onglet dans le fichier Excel

If ComboBox1 = "Chèque" Then

TextBox4.Visible = True

Label5.Visible = True

Else: TextBox4.Visible = False

Label5.Visible = False

End If

End Sub

Etant débutante en VBA, j'aimerai bien qu'on m'explique en détail ce qui ne fonctionne pas afin que je m'améliore sur mes prochains codages sans toujours appeler à l'aide !

Je vous remercie par avance du temps que vous voudrez bien m'accorder.

Marina

383comptes-test.xlsm (27.33 Ko)

Bonsoir,

Teste avec ce code

(J'ai déplacé le Chgt de la Combo du type de paiement sur CHANGE)

Tente, quand tu créée un USF de renommer les Textbox et combobox, tu te retrouveras plus facilement ensuite

Dim Ws As Worksheet

'sur changement de type de paiement Textbox4 et Label5 visibles/ou pas
Private Sub ComboBox1_Change()
 If ComboBox1.Value = "Chèque" Then
        TextBox4.Visible = True
        Label5.Visible = True
        Else
        If ComboBox1.Value <> "Chèque" Then
        TextBox4.Visible = False
        Label5.Visible = False
        End If
        End If
End Sub

'Pour le formulaire

Private Sub UserForm_Initialize()

    ComboBox1.List() = Array("Chèque", "Carte Bleue", "Virement", "Prélèvement", "Retrait", "Remise de chèques", "Dépôt d'espèces", "Interne")
    Set Ws = Sheets("COMPTE CHEQUE") 'Correspond au nom de votre onglet dans le fichier Excel
   ' Rend invisible Textbox4 et Label 5
        TextBox4.Visible = False
        Label5.Visible = False

    ComboBox3.List() = Array("Alimentation", "Animaux", "Autres", "Voitures", "Emprunts", "Epargne", "Frais Bancaire", "Impôts", "Kevin", "Maison", "Marina", "Portables", "Santé", "Vacances/Voyages", "Voitures")
    Set Ws = Sheets("COMPTE CHEQUE")

        If ComboBox3 = "Alimentation" Then
        ComboBox2.List() = Array("Courses", "Restaurants")
        End If

    ComboBox5.List() = Array("Dépense", "Recette")
    Set Ws = Sheets("COMPTE CHEQUE")

    ComboBox6.List() = Array("", "Pointé")
    Set Ws = Sheets("COMPTE CHEQUE")

End Sub

Private Sub CommandButton1_Click()

Dim L As Integer

    L = Sheets("COMPTE CHEQUE").Range("a65536").End(xlUp).Row + 1  'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
   Range("A" & L).Value = TextBox3
    Range("B" & L).Value = ComboBox1
    Range("C" & L).Value = TextBox4
    Range("D" & L).Value = ComboBox3
    Range("E" & L).Value = ComboBox2
    Range("F" & L).Value = TextBox5
    Range("G" & L).Value = TextBox2
    Range("H" & L).Value = ComboBox6

 Unload Me

UserForm1.Show

End Sub

Private Sub CommandButton2_Click()

    Unload Me

End Sub

Je vous remercie, cela fonctionne !

Rechercher des sujets similaires à "vba afficher textbox fonction combobox"