Private Sub liste_8_Change()
If liste_8.ListIndex = -1 Then ListBox1.Clear: Exit Sub
Dim x$, d As Object, tablo, i&
x = LCase(liste_8)
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
tablo = Sheets("Base").[B8].CurrentRegion.Resize(, 8) 'matrice, plus rapide
For i = 2 To UBound(tablo)
If LCase(tablo(i, 8)) = x Then d(tablo(i, 7)) = ""
Next
If d.Count Then ListBox1.List = d.keys Else ListBox1.Clear
End Sub