Macros qui permettent de cumuler des filtres

Bonjour le Forum !

J'utilise pas mal de macros qui appliquent un filtre pré-réglé.

Problème : chaque macro annule le filtre précédent, càd que je ne peux pas cumuler un filtre sur la colonne B (par exemple) et lancer une macro qui applique en plus un filtre sur la colonne C. Le 1er filtre est annulé.

Y a-t-il une possibilité pour que chaque filtre se cumule au(x) filtre(s) éventuellement déjà actif(s) ?

Je joins une de mes macros :

Sub EPH_Données_Filtrer_EXPOS()
    Application.ScreenUpdating = False
    Application.Goto Reference:="EPH_évènements_filtré"
    Selection.AutoFilter
    Selection.AutoFilter Field:=12, Criteria1:="=*expo*", Operator:=xlAnd
End Sub

Merci !

Bonjour Gloub,

Comme tu l'as remarqué, ta macro utilise le champ 12 (sans doute la colonne L) ...

Si tu veux cumuler, tu as besoin d'ajouter ... par exemple pour la Colonne N et la valeur test ...

.AutoFilter Field:=14, Criteria1:="test"

Bonjour,

Merci pour ta réponse.

Malheureusement, comme je suis au niveau Débutant- en VBA, après plusieurs tâtonnements, je n'arrive pas à résoudre mon problème.

Pourrais-tu m'indiquer comment modifier ma macro pour qu'elle ajoute son critère de filtrage au filtre déjà en place ?

(par ailleurs, comme ma macro a été créée puis mise au point avec l'enregistreur de macros, elle ne permet pas de vérifier d'abord si un filtre est déjà actif, mais ça c'est peut-être le perfectionnement suivant)

Merci !

Re,

Pas si débutant que çà ...

Pour autant que je me souvienne, tu as dénoué bien des sujets ...

Malheureusement sans ton fichier, et sans précision sur les filtres que tu désires ... je ne vais pas pouvoir t'aider plus avant ...

Bonjour,

Merci pour les compliments...très excessifs (en particulier, je suis vraiment un autodidacte bricolo du VBA).

Pour revenir à mes problèmes de macros, j'ai trouvé plus parlant de créer un classeur qui mette en évidence mon problème.

Du coup j'ai compris que mon problème est différent de ce que je pensais :

Je pensais que les filtres ne "s'additionnent" pas quand on lance successivement plusieurs macros comportant des filtres prédéfinis.

Mais en fait, le problème vient de mes macros, qui commencent toujours par une phase de création du filtre.

Je les ai faites comme ça parce que, comme je ne sais les créer qu'à partir de l'enregistreur de macros, je ne sais pas comment faire pour qu'elles procèdent plutôt comme suit :

1/ je détecte si un filtre existe

2/ si oui, j'applique le filtre défini dans la macro, si non, je crée un filtre automatique sur la plage "plage_à_filtrer"

Si je savais faire ça, le problème serait je pense résolu.

Donc merci à toutes les bonnes volontés.

PS : je joins un fichier avec un exemple bidon : un bouton permet de créer ou de supprimer un filtre. Deux boutons permettent d'appliquer un filtre prédéfini : le 1er ne conserve que les villes contenant la lettre "e", le 2ème ne conserve que les lignes contenant une année > 1997. On voit bien que les filtres prédéfinis peuvent se cumuler.

66classeur1.xls (19.50 Ko)

Bonjour,

Tu peux construire ton code à partir du test suivant :

If ActiveSheet.AutoFilterMode = True Then
   'Oui - Appliquer le filtre défini dans la macro
   '
Else
   'Non - Créer un filtre automatique sur la plage "plage_à_filtrer"
   '
End If

Merci James !!!

Une question préalable à la réécriture de la macro :

dans la mesure où le but de la macro est d'appliquer le filtre de toutes façons, est-ce que je pourrais modifier le code sur le principe suivant :

If ActiveSheet.AutoFilterMode = False Then
   'Oui - Créer un filtre automatique sur la plage "plage_à_filtrer"
  '
Else
   'Non - aller après le End If
  '
End If

Appliquer le filtre défini dans la macro

Merci !

Re,

Du point de vue strictement logique ... tu ne sembles pas avoir besoin de l'alternative ...

If ActiveSheet.AutoFilterMode = False Then
   'Oui - Créer un filtre automatique sur la plage "plage_à_filtrer"
End If
Appliquer le filtre défini dans la macro ...

Parfait !

Merci James, tu as été de Bond conseil.

De rien ...

Merci pour tes remerciements ...

Rechercher des sujets similaires à "macros qui permettent cumuler filtres"