saisie dans une quatrième combobox
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:
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:
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 Sub |
Code:
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 |
dans le sous programme j'ai mis que la partie "Private Sub ComboBox3_Change"