ComboBox dépendantes avec If Else

Bonjour tout le monde,

Débutant en vba, j'ai créé un UserForm pour que l'on puisse directement renseigner un tableau excel.

Je souhaiterais que plusieurs combobox soient dépendantes. Par exemple, si A est sélectionné dans la ComboBox1, je souhaiterais que la liste de propositions dans la combobox2 change. De sorte que :

Nous avons A, B et C dans la Combobox1 et A1, A2 et A3 dans la Combobox2 si A a été sélectionné. B1, B2, B3 si la proposition B a été sélectionné dans la combobox1, etc.

J'ai donc écrit le code vba ci-dessous qui ne fonctionne pas.

Lorsque j'exécute mon userform, j'ai bien ma liste de propositions dans la Combobox1 mais rien ne s'affiche dans la Combobox2...

Private Sub UserForm_Initialize()
   ComboBox1.AddItem "A"
   ComboBox1.AddItem "B"
   ComboBox1.AddItem "C"
End Sub

Private Sub ComboBox5_Change()
If ComboBox1.Value = "A" Then
   ComboBox2.AddItem "A1"
   ComboBox2.AddItem "A2"
   ComboBox2.AddItem "A3"

ElseIf ComboBox1.Value = "B" Then
   ComboBox2.AddItem "B1"
   ComboBox2.AddItem "B2"
   ComboBox2.AddItem "B3"

ElseIf ComboBox1.Value = "C" Then
   ComboBox2.AddItem "C1"
   ComboBox2.AddItem "C2"
   ComboBox2.AddItem "C3"

 Else: ComboBox2 = ""
 End If
End Sub

En vous remerciant par avance pour votre aide !

mm_b

Bonjour,

Sans données confidentielles

Sinon une idée dans le fichier ici --> https://forum.excel-pratique.com/s/goto/1065143

Cordialement

Bonjour, voici le fichier en question :

Dans le fichier, mon problème concerne la combobox 5 et 6

Merci pour vos propositions :)

Oui normal dans le code Private sub combobox5_change vous mentionnez Combobox1 et Combobox2 dans le elseif

Le code comme ceci

Private Sub ComboBox5_Change()

ComboBox6.Clear
If ComboBox5.Value = "Ceci est la proposition A" Then
   ComboBox6.AddItem "Afficher la proposition A1"
   ComboBox6.AddItem "Afficher la proposition A2"
   ComboBox6.AddItem "Afficher la proposition A3"

ElseIf ComboBox5.Value = "Ceci est la proposition B" Then
   ComboBox6.AddItem "Afficher la proposition B1"
   ComboBox6.AddItem "Afficher la proposition B2"
   ComboBox6.AddItem "Afficher la proposition B3"

ElseIf ComboBox5.Value = "Ceci est la proposition C" Then
   ComboBox6.AddItem "Afficher la proposition C1"
   ComboBox6.AddItem "Afficher la proposition C2"
   ComboBox6.AddItem "Afficher la proposition C3"

End If
End Sub

ou plus simple comme ceci :

Private Sub ComboBox5_Change()
Dim i As Byte
Dim J As String

ComboBox6.Clear
Select Case ComboBox5.Value
    Case "Ceci est la proposition A": J = "A"
    Case "Ceci est la proposition B": J = "B"
    Case "Ceci est la proposition C": J = "C"
End Select
For i = 1 To 3
    ComboBox6.AddItem "Afficher la proposition " & J & i
Next i
end sub

Rem :
- Le mieux serait que vous prépariez votre fichier avec les vraies valeurs. Le cas échéant vous risquez de devoir tout changer à nouveau une fois que vous aurez mis les données. exemple : à quoi correspond "Ceci est la proposition A1" ?
- Attention avec les accents utilisés pour les noms dans le gestionnaire de noms. Evitez à tout prix, vous risquez toujours d'avoir un souci. Pensez anglais !. ex : Base_de_donnees au lieu de base_de_données
- Le code Ajouter devrait être revu complètement vu que votre tableau est au format structuré

Cordialement

Rechercher des sujets similaires à "combobox dependantes else"