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
| Private Sub ComboBox1_Change()
'on se place en haut du tableau
c = 4
'boucle jusqu'à trouver la saisie dans la col C.
'La deuxième condition est une sécurité, si l'utilisateur saisi une valeur qui n'est pas dans la liste
Do Until ComboBox1.Value = Cells(c, 3).Value Or c > Range("C" & Rows.Count).End(xlUp).Row
'si la valeur saisie dans la liste est rouvée, on sort de la boucle
If Cells(c, 3).Value = ComboBox1.Value Then
Exit Do
End If
'passage à la ligne suivante
c = c + 1
Loop
'test pour savoir si on à trouver la valeur (en cas de saisie non valide
If ComboBox1.Value <> Cells(c, 3).Value Then
MsgBox "La valeur saisie n'existe pas"
Exit Sub
End If
c = c + 1
'si la saisie est valide, on efface le contenu de la liste
ComboBox2.Clear
'et on alimente à deuxième liste
Do Until Cells(c, 3).Value <> ""
'on teste que la cellule n'est pâs vide
If Cells(c, 4).Value <> "" Then
'si la cellule n'est pas vide on ajoute à la première liste
ComboBox2.AddItem Cells(c, 4).Value
End If
'passage à la ligne suivante
c = c + 1
Loop
End Sub |