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
|
Dim f, BD(), ColcléCombo(), ColClé1, ColClé2, ColClé3, ColClé4
Private Sub UserForm_Initialize()
ColcléCombo = Array(1, 2, 3, 4, 5) ' colonnes des combobox( à adapter)
Set f = Sheets("BD")
Set d1 = CreateObject("Scripting.Dictionary")
BD = f.Range("A2:E" & f.[A65000].End(xlUp).Row).Value ' Array pour rapidité (à adapter)
ColClé1 = ColcléCombo(0)
For i = LBound(BD) To UBound(BD): d1(BD(i, ColClé1)) = "": Next
Me.ComboBox1.List = d1.keys
End Sub
Private Sub ComboBox1_click()
Me.ComboBox2.Clear
Me.ComboBox3.Clear
Me.ComboBox4.Clear
ColClé2 = ColcléCombo(1)
Set d1 = CreateObject("Scripting.Dictionary")
For i = LBound(BD) To UBound(BD)
If BD(i, ColClé1) = Me.ComboBox1 Then d1(BD(i, ColClé2)) = ""
Next i
Me.ComboBox2.List = d1.keys
End Sub
Private Sub ComboBox2_click()
Me.ComboBox3.Clear
Me.ComboBox4.Clear
ColClé3 = ColcléCombo(2)
Set d1 = CreateObject("Scripting.Dictionary")
For i = LBound(BD) To UBound(BD)
If BD(i, ColClé1) = Me.ComboBox1 And BD(i, ColClé2) = Me.ComboBox2 Then d1(BD(i, ColClé3)) = ""
Next i
Me.ComboBox3.List = d1.keys
End Sub
Private Sub ComboBox3_click()
Me.ComboBox4.Clear
ColClé4 = ColcléCombo(3)
Set d1 = CreateObject("Scripting.Dictionary")
For i = LBound(BD, 1) To UBound(BD, 1)
If BD(i, ColClé1) = Me.ComboBox1 And BD(i, ColClé2) = Me.ComboBox2 _
And BD(i, ColClé3) = Me.ComboBox3 Then d1(BD(i, ColClé4)) = ""
Next i
Me.ComboBox4.List = d1.keys
End Sub
Private Sub ComboBox4_click()
For i = LBound(BD) To UBound(BD)
If BD(i, ColClé1) = Me.ComboBox1 And BD(i, ColClé2) = Me.ComboBox2 _
And BD(i, ColClé3) = Me.ComboBox3 And BD(i, ColClé3) = Me.ComboBox3 Then
Me.TextBox1 = BD(i, ColcléCombo(4))
End If
Next i
End Sub |
Partager