[VBA] Filtres variables et multiples

4classeur1.xlsm (20.90 Ko)

Bonjour à tous,

J'ai besoin d'un coup de pouce pour un fichier Excel. J'ai mis une "reproduction" de celui-ci en PJ.

J'ai besoin de filtrer un tableau (Onglet "Tableau") à partir d'une liste variable située dans la colonne d'un autre onglet (Colonne A, onglet "Liste"). Le problème, cette liste de critères est longue (jusqu'à une centaine et est variable).

J'ai déjà commencé une macro (fonctionnelle) basique mais peu pratique :

Private Sub CommandButton1_Click()

Dim FiltreA As String
Dim FiltreB As String
FiltreA = Range("A2").Value
FiltreB = Range("A3").Value

    Workbooks("Classeur1.xlsm").Worksheets("Tableau").Range("$A$1:$D$1").AutoFilter Field:=1, Criteria1:=Array( _
        FiltreA, FiltreB), Operator:=xlFilterValues

End Sub

J'aimerai donc trouver un moyen de regrouper l'ensemble de mes critères en une variable afin de pouvoir filtrer sans devoir écrire "FiltreC", "FiltreD",... 100 fois

Je comptais utiliser :

Dim Condition As Long
Condition = Range("A" & Rows.Count).End(xlUp).Row

Dim Compteur As Long
Compteur = 1

Dim Chaine As String

 Do While Compteur <= Condition
        NomVariable = Range("A" & Compteur).Value
        Chaine = Chaine & """" & NomVariable & """, "
       Compteur = Compteur + 1

  Loop

Je ne sais pas si c'est ce qu'il y avait de plus simple à faire mais une fois la chaîne créée, je n'arrive pas à l'intégrer à mon autofilter.

Je n'ai penser qu'à ça comme méthode. Quelqu'un a-t-il une proposition ? Ou une autre méthode pour réaliser cela ?

Désolé si la question est confuse ou la réponse évidente, je débute encore dans le VBA.

Merci d'avance pour les réponses que vous pourrez m'apporter et bon week-end

Bonjour

Peut être comme ça :

Sub testFiltre()
  Dim arrayFiltre()
  Dim dl%

  dl = Sheets("Liste").Range("A" & Rows.Count).End(xlUp).Row
  arrayFiltre = Application.Transpose(Sheets("Liste").Range("A1:A" & dl).Value)

  Workbooks("Classeur1.xlsm").Worksheets("Tableau").Range("$A$1:$D$1").AutoFilter Field:=1, Criteria1:=arrayFiltre, Operator:=xlFilterValues

End Sub

Bonjour

Filtra avancé et tableaux structurés pour prendre en compte l'évolution tant de la source que des critères

24filtre-avance.xlsm (18.73 Ko)

Merci beaucoup pour vos 2 réponses. Je les ai adapté à mon vrai fichier et elles fonctionnent toutes les 2.

Passez une bonne journée.

Rechercher des sujets similaires à "vba filtres variables multiples"