Bonjour à tous,
Après avoir regardé les tutos et autres sujet du forum, je n'ai pas réussit à répondre à ma question, peut être est elle bête j'en suis désolée par avance.
Voilà j'ai fichier excel contenant pas mal de données. Afin de les retrouver plus vite je crée une interface à l'aide d'une macro et de combobox. J'aimerais avoir des combobox "maitre esclave", ça j'ai réussit à faire plus ou moins (j'ai réussit à remplir les combobox). Le problème est que mon tableau s'organise de la façon suivante:
toto1
bobo
boubou
baba
toto2
plif
plaf
plouf
j'aimerais savoir si il est possible de programmer les Combobox, de façon à ce que lorsque je sélectionne avec la Combobox1, toto1, la combobox2 me laisse juste la possibilité de choisir entre les 3 possibilité (bobo, boubou, baba). Une espèce de filtre en faite?
J'ai quatre niveau comme cela de combobox mais je pense que si j'y arrive déjà avec 2, le reste coule de source
Merci de votre réponse
Je vous met mon code au cas où cas ou!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 Option Explicit Dim NbLignes As Integer Private Sub UserForm_Initialize() Dim j As Long Dim kol As New Collection NbLignes = Cells(Rows.Count, 1).End(xlUp).row For j = 2 To NbLignes On Error Resume Next kol.Add Range("A" & j).Value, Range("A" & j).Value Next j For j = 2 To kol.Count Me.ComboBox1.AddItem kol(j) Next j End Sub Private Sub ComboBox1_Change() Dim j As Long Dim kol As New Collection For j = 2 To NbLignes On Error Resume Next If CStr(Range("A" & j).Value) Then kol.Add Range("B" & j).Value, Range("B" & j).Value Next j Me.ComboBox2.Clear For j = 1 To kol.Count Me.ComboBox2.AddItem kol(j) Next j End Sub Private Sub ComboBox2_Change() Dim j As Long Dim kol As New Collection For j = 2 To NbLignes On Error Resume Next If Me.ComboBox1.Value And Me.ComboBox2.Value Then kol.Add Range("C" & j).Value, Range("C" & j).Value Next j Me.ComboBox3.Clear For j = 1 To kol.Count Me.ComboBox3.AddItem kol(j) Next j End Sub Private Sub ComboBox3_Change() Dim j As Long Dim kol As New Collection For j = 2 To NbLignes On Error Resume Next If Me.ComboBox1.Value And Me.ComboBox2.Value And Me.ComboBox3.Value Then kol.Add Range("D" & j).Value, Range("D" & j).Value Next j Me.ComboBox4.Clear For j = 1 To kol.Count Me.ComboBox4.AddItem kol(j) Next j End Sub
Partager