Rebonjour,
Je fais une liste déroulante en cascade qui ne passe pas sur les modéles chiffrés de Peugeot (208,508..), saleté de Peugeot
Private Sub marq_Change()
'Filtre en cascade des véhicules sur la marque et le modéle
Dim i%, x%, dico, ws1 As Worksheet, tb1 As ListObject, ws2 As Worksheet
Application.ScreenUpdating = False
Set dico = CreateObject("Scripting.Dictionary")
Set ws1 = Sheets("Parc")
Set tb1 = ws1.ListObjects("Park")
Set ws2 = Sheets("Listes")
'controle saisie
If Me.marq.Value = "" Then
MsgBox "Veuillez sélectionner une marque."
GoTo fin
End If
'efface dico precedent
dico.RemoveAll
For i = 1 To tb1.ListRows.Count
'si marq et modele alphab, alors en liste
If tb1.DataBodyRange(i, 2).Value = Me.marq.Value And Not dico.exists(tb1.DataBodyRange(i, 2).Value) Then
If IsNumeric(tb1.DataBodyRange(i, 3).Value) Then
dico.Add CSng(tb1.DataBodyRange(i, 3).Value), ""
Else
dico.Add tb1.DataBodyRange(i, 3).Value, ""
End If
End If
Next i
modl.list() = Application.Transpose(dico.keys)
fin:
Application.ScreenUpdating = True
End Sub
Pour ouvrir le formulaire, il faut double cliquer dans le classeur, puis sélectionner "marque".
Si vous avez une idée, je suis preneur.
Merci