J'ai donc une liste déroulante avec le choix entre 3 résultats (Titre 1, 2 ,3). c'est bien
Problème : sur la combobox 2 je veux que la liste soit en fonction de la combobox 1. (sinon ma liste déroulante atteint les 50 choix.)
si combobox 1 = titre 1 alors j'ai une liste de choix dans la combobox2 (option 1 ,2 3, 4, 5)
si combobox 1 = titre 2 alors j'ai une liste de choix dans la combobox2 qui est différente.(option 6, 7, 8, 9,10)
Et la je suis totalement coincé. Tous ce que j'ai vu sur internet ce reportais avec des listes présentes sur des feuilles excel mais je veux que toutes les options soit saisies directement dans le code. (Je viens de passer 2 heures à nettoyer la base de donnée et souhaite verrouiller les options).
J'ai essayé avec if mais cela ne fonction pas.
Voici un exemple du code. (j'ai essayé plusieurs variantes mais rien ne se passe)
Mais est-ce que je l'ai mis au bonne endroit?
Code:
Private Sub MultiPage1_Change()
If ComboBox1.Value = "Titre 1" Then
ComboBox2.AddItem "test validé"
Else
MsgBox ("fini")
End If
End Sub
autre code essayé
Code:
Private Sub MultiPage1_Click(ByVal Index As Long)
If ComboBox1.Value = "Titre 1" Then
ComboBox2.AddItem "test validé"
Else
MsgBox ("fini")
End If
End Sub
Lorsque j'ai placé les ComboBox2.AddItem dans Private Sub UserForm_Initialize() tous les choix apparaissent.
J'en conclu que soit je place le code au mauvais emplacement soit je fais n'importe quoi !
Private Sub ComboBox1_Change()
Dim t
If ComboBox1.Value = "" Then Exit Sub
Me.ComboBox2.Clear
If Me.ComboBox1.Value = "Titre 1" Then
t = Array(1, 2, 3, 4, 5)
Me.ComboBox2.List = t
ElseIf Me.ComboBox1.Value = "Titre2" Then
t = Array(5, 6, 7, 8, 9, 10)
Me.ComboBox2.List = t
End If
End Sub
Private Sub ComboBox1_Change()
Dim t
If ComboBox1.Value = "" Then Exit Sub
Me.ComboBox2.Clear
If Me.ComboBox1.Value = "Titre 1" Then
t = Array(1, 2, 3, 4, 5)
Me.ComboBox2.List = t
ElseIf Me.ComboBox1.Value = "Titre2" Then
t = Array(5, 6, 7, 8, 9, 10)
Me.ComboBox2.List = t
End If
End Sub