Valeur numérique passe pas dans le dico

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
image

Pour ouvrir le formulaire, il faut double cliquer dans le classeur, puis sélectionner "marque".

Si vous avez une idée, je suis preneur.

3forum.zip (904.55 Ko)

Merci

bonjour,

le message parait clair.
Tu cherches à ajouter un modèle 508 alors qu'il est déjà présent, il n'aime pas bien...
eric

image

Bonjour eriic,

Je ne sais pas ou tu places ton debug print pour vérifier si j'ai le même résultat, mais il y avait une erreur majeure dans ma condition. c'est colonne 3 et pas 2 à la fin.

image

Merci pour ta réponse

Oui. Tu contrôlais la non existence de la marque et pas du modèle.

Rechercher des sujets similaires à "valeur numerique passe pas dico"