Bonjour,
Ton fichier marche bien, et c'est la logique de combo que je dois avoir, j'ai donc pris le code, et essayer de l'adapter avec mon fichier de travail.
Je retrouve la bonne logique, mes combos se chargent bien, mais ça plante.
En effet, il faut savoir que dans mon fichier travail les colonnes utilisé ne sont pas de C à F, mais de D à G, et les colonnes A à C sont rempli par d'autres valeurs que j'utilise pas dans mon combo.
J'ai donc changé les indice de colonne de cellule qui étaient à 3, par 4, et ceux de 4 par 5.
Je n'ai pas touché aux indice de colonne 1 et 2 qui représente aucune valeur dans ton fichier, car les colonnes sont vides, mais moi mes colonnes sont rempli (par des "textes" ).
ça fonctionne comme je l'ai dit, mais ça plante quand je selectionne une valeur du combo3, ou quand je rechange de selection pour le combo principal.
L'erreur que ça me dit c'est que l'indice n'appartient pas à la selection.
J'ai refais une nouvelle version et cette fois j'ai rempli les 3 premières colonnes par des textes, et j'ai adapté ton code à ce que je pense, mais bon je ne comprend pas les indices de colonne 1 et 2 du code...
Je te réécrit également le code que j'ai adapté pour cette nouvelle version :
Dim f, BD()
Private Sub ComboBox3_Change()
Me.ComboBox4.Clear
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(BD)
If BD(i, 4) = CDbl(Me.ComboBox3) And BD(i, 5) <> "" Then d(BD(i, 5)) = ""
Next i
Me.ComboBox4.List = d.keys
End Sub
Private Sub ComboBoxPrinci_Change()
Me.ComboBox2.Clear
Me.ComboBox3.Clear
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(BD)
If BD(i, 1) = CDbl(Me.ComboBoxPrinci) And BD(i, 2) <> "" Then d(BD(i, 2)) = ""
Next i
Me.ComboBox2.List = d.keys
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(BD)
If BD(i, 1) = CDbl(Me.ComboBoxPrinci) And BD(i, 4) <> "" Then d(BD(i, 4)) = ""
Next i
Me.ComboBox3.List = d.keys
End Sub
Private Sub UserForm_Initialize()
Set f = Feuil1
BD = f.Range("D4:G" & f.[D65000].End(xlUp).Row).Value
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(BD)
d(BD(i, 1)) = ""
Next i
Me.ComboBoxPrinci.List = d.keys
End Sub
Merci