Public Db As Worksheet
Public Ville As Object
Public Rue As Object
Public Tb
Private Sub SelecTest_Initialize()
Dim v As Integer
Set Db = ActiveSheet 'Sheets("Total")
Set Ville = CreateObject("Scripting.Dictionary")
Db.Rows("5:5").AutoFilter
Tb = Db.Range("A5:A" & Db.[A65000].End(xlUp).Row) ' tableau a(n,1) pour rapidité
For v = LBound(Tb) To UBound(Tb)
If Tb(v, 1) <> "" Then Ville(Tb(v, 1)) = ""
Next v
Me.ComboVille.List = Ville.keys
Erase Tb
End Sub
Private Sub ComboVille_Change()
Dim r As Integer
Set Db = ActiveSheet 'Sheets("Total")
Set Rue = CreateObject("Scripting.Dictionary")
Db.Rows("5:5").AutoFilter
Db.Range("A5:C5").AutoFilter Field:=1, Criteria1:=Me.ComboVille.Value
Tb = Db.Range("B6:B30000").SpecialCells(xlCellTypeVisible)
For r = LBound(Tb) To UBound(Tb)
If Tb(r, 1) <> "" Then Rue(Tb(r, 1)) = ""
Next r
With Me.ComboRue
.List = Rue.keys
.Value = ComboRue.List(0) 'Rue.Item(0)
End With
End Sub