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
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 !