Bonjour à tous,
J'explique mon soucis pour lequel je suis totalement perdu depuis plusieurs jours.
Je dispose d'un classeur comprenant 40.000 lignes (liste de véhicules, 1 ligne correspond a 1 modèle de véhicule)
Cette liste est divisée en colonnes (ex B = Marque, C=Modèle, D=Année, P=Version, S=Motorisation), les colonnes intermédiaires ne sont pas utilisées sur mon filtre
Dans une troisième feuille, j'utilise un tableau, dans lequel j'intègre des valeurs copiées/collées identique à ma liste principale
Pour le filtre avancé, j'ai une deuxième feuille intermédiaire, dans laquelle je fais un copier coller de la liste des véhicules avec des valeurs exactes identiques au format de ma liste (Marque, Modèle, Année)
Dans la troisième feuille, j'utilise une fonction = pour récupérer les valeurs de ma deuxième feuille, et les assigner dans le même ordre que ma liste (mon tableau copié/collé étant disposé différemment et ne provenant pas d'excel, c'est la seule solution pour pouvoir appliquer un filtre avancé à mon sens, les valeurs à filtrer devant être dans le même ordre que la liste initiale)
Lorsque j'effectue un filtre avancé manuel, tout fonctionne correctement : Valeurs à filtre = $B$1:$1$40597
Dans mon exemple, j'ai 3 lignes à sortir :
Toyota RAV 4 II 2000/08-2005/11 _A2_ 1.8 Toyota RAV 4 II 2000/05-2005/11 _A2_ 2.0 4WD Toyota RAV 4 II 2001/05-2005/11 _A2_ 2.0 D 4WD
Lorsque l'applique un filtre provenant de ce tableau en manuel, les 3 valeurs sortent correctement.
Par contre, avec une macro enregistrée du filtre avancé manuel, seules ces deux lignes sortent :
Toyota RAV 4 II 2000/05-2005/11 _A2_ 2.0 4WD Toyota RAV 4 II 2001/05-2005/11 _A2_ 2.0 D 4WD
La ligne comprenant la valeur "1.8" en colonne "Motorisation" ne sort pas.
J'ai tenté de passé cette valeur en texte, mais rien à faire.
J'ai toujours des enregistrement manquants suite au filtre via VBA par rapport au filtre avancé appliqué en manuel.
Le format des cellules a été passé en standard, texte, etc .. Mais rien à faire, toujours 2 enregistrement au lieu des 3 (dans ce cas), avec d'autres valeurs (ex 15 lignes réelles), j'en aurais moins avec le filtre VBA qu'avec un filtrage manuel.
Quelqu'un aurait une idée de ce qui cloche ?
Voici ma macro VBA utilisée :
(J'applique 800 dans la range de la feuille "FILTRE" de façon aléatoire car il peut y avoir 3 lignes à filtre, comme jusqu'à 800 selon ma requête)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Sub Macro1() ' ' Macro1 Macro ' Sheets("FR Liste_Vehicules").Select Range("$B$1:$S$40597").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Sheets("FILTRE").Range("$B$1:$S$800"), Unique:=False End Sub
Merci pour votre aide.
Cordialement
Partager