Private Sub C1_Change()
Dim Couleur&, Compteur&
C2.Clear 'efface la combobox
T1 = "" ' efface la textbox
C3.ListIndex = -1 ' enlève le texte
T2 = "" ' efface la textbox
Couleur = Feuil1.Cells(C1.ListIndex + 2, 140.Font.Color ' couleur de référence
Compteur = 2
Do ' boucle sur la colonne b
' si couleur= à la couleur de la cellule on a ajoute le texte de la cellule à la liste déroulante
If Couleur = Feuil1.Cells(Compteur, 141).Font.Color Then C2.AddItem Feuil1.Cells(Compteur, 141).Value
Compteur = Compteur + 1
Loop Until Feuil1.Cells(Compteur, 141) = "" ' si plus de donnée on quitte la boucle
End Sub
Private Sub C2_Change()
Dim Couleur&, Compteur&
C3.ListIndex = -1 ' enlève le texte
T2 = "" ' efface la textbox
Couleur = Feuil1.Cells(C1.ListIndex + 2, 140).Font.Color ' couleur de référence
Compteur = 1
Do
Compteur = Compteur + 1
Loop Until Feuil1.Cells(Compteur, 141).Font.Color = Couleur ' if couleur=cellule on suitte la boucle
T1 = Feuil1.Cells(C2.ListIndex + Compteur, 142).Value
End Sub
Private Sub C3_Change()
Dim Col, Cel As Range
If C3.ListIndex = -1 Then Exit Sub
' recherche de la colonne pour t2
For Each Cel In Feuil1.Range(Feuil1.Cells(1, 144), Feuil1.Cells(1, Feuil1.Cells(1, Columns.Count).End(xlToLeft).Column))
If Cel.Value = C2.Value Then Col = Cel.Column: Exit For
Next Cel
' les items d'une liste commence à 0 donc on ajoute 2 (un pour la liste, un pour les entêtes)
T2 = Feuil1.Cells(C3.ListIndex + 2, Col)
End Sub
Private Sub UserForm_Initialize()
Dim i&, aa, n
aa = Feuil1.Range("EJ2:EJ" & Feuil1.Range("EJ" & Rows.Count).End(xlUp).Row)
C1.List = aa
aa = Feuil1.Range("EM2:EM" & Feuil1.Range("EM" & Rows.Count).End(xlUp).Row)
C3.List = aa
End Sub