bonsoir,
J'ai des combox(4) qui sont dépendants les uns des autres,
les 3 premiers combobox sont bien alimentés par la base de donnée mais le quatriéme ne l'est pas.
voilà mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub AjouterItem(ByRef oCollection As Collection, ByVal strItem As String) Dim oObjet As Object Dim ValeurPresente As Boolean Dim i As Long For i = 1 To oCollection.Count If oCollection.Item(i) = strItem Then ValeurPresente = True Exit Sub End If Next i If Not ValeurPresente Then oCollection.Add strItem End Sub
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 Private Sub UserForm_Initialize() Dim Cellule As Range Dim Balan As Range Dim calle As Range Dim Translist As Range Dim oCollection As New Collection Dim i As Long For Each Cellule In Feuil4.Range("a2:a" & Feuil4.Range("a" & Rows.Count).End(xlUp).Row) AjouterItem oCollection, Cellule.Value Next Cellule For i = 1 To oCollection.Count ComboBox1.AddItem oCollection.Item(i) Next i For Each Balan In Feuil4.Range("b2:b" & Feuil4.Range("b" & Rows.Count).End(xlUp).Row) AjouterItem oCollection, Balan.Value Next Balan For i = 1 To oCollection.Count ComboBox2.AddItem oCollection.Item(i) Next i For Each calle In Feuil4.Range("c2:c" & Feuil4.Range("c" & Rows.Count).End(xlUp).Row) AjouterItem oCollection, calle.Value Next calle For i = 1 To oCollection.Count ComboBox3.AddItem oCollection.Item(i) Next i For Each Translist In Feuil4.Range("d2:d" & Feuil4.Range("d" & Rows.Count).End(xlUp).Row) AjouterItem oCollection, Translist.Value Next Translist End Subdans le sous programme j'ai mis que la partie "Private Sub ComboBox3_Change"
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 Private Sub ComboBox3_Change() Dim oCollection As New Collection Dim i As Long Dim calle As Range ComboBox4.Clear ' Itération sur chaque cellule de d et appel de la procédure d'ajout For Each calle In Feuil4.Range("d2:d" & Feuil4.Range("d" & Rows.Count).End(xlUp).Row) If calle(1, 0).Value = ComboBox3.Value Then AjouterItem oCollection, calle.Value Next calle For i = 1 To oCollection.Count ComboBox4.AddItem oCollection.Item(i) Next i End Sub
Partager