Appliquer filtre élaboré et filtre automatique

Bonjour, je vous présente ma base :

3 colonnes : Objet et Binaire1 et Binaire2 (peu importe), dans la colonne objet j'ai 8 "Truc" et 5 "Machin", dans les colonnes Binaire1 et Binaire2, j'ai soit 1 soit 0.

Je réalise dans un premier temps un filtre élaboré, me gardant que les lignes où il y a un 1 soit dans Binaire1 soit dans Binaire2. Il me reste donc 4 "Truc" et 2 "Machin". Grâce à un userform composé de deux checkbox, je réalise un filtre automatique afin de me garder seulement les 4 "Truc" sauf que quand je réalise ce filtre automatique, il me met seulement les 8 "Truc" du départ. Je souhaite donc grâce un seul bouton "Filtrer" de mon userform faire ces deux filtres en ayant mes 4 "Truc" à la fin.

Voici mon code VBA :

Sub Filtrer()

If Crit1 = "" And Crit2 = "" Then ActiveSheet.Range("$A$1:$C$14").AutoFilter Field:=1: Exit Sub

ActiveSheet.Range("$A$1:$C$14").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("critèreP"), Unique:=False

ActiveSheet.Range("$A$1:$C$14").AutoFilter Field:=1, Criteria1:=Array(Crit1, Crit2), Operator:=xlFilterValues

End Sub

Je pense qu'il faut mettre un XFilterCopy ou quelque chose du genre... Merci de votre aide.

Et j'ai un autre problème, si possible, que si dans mon UserForm je coche "Machin" qu'il me mette les 2 "Machin" automatiquement à place des 4 "Truc" et ne pas les rajouter.

J'ai pas un bon niveau Excel, mais je sens qu'il n'y a que 1 ou 2 lignes même pas à changer pour avoir le filtre auto en même temps que le filtre élaboré, y'a bien un génie qui peut trouver ça ?

Bonjour

Ce serait mieux si tu joignais ton fichier...

Bye !

Ah oui, 'fin c'est pas compliqué comme tableau hein, je pensais pas que y'avait besoin, mais bon voilà.

Désolé, je relance, mais je trouve bizarre qu'il n'y ait pas de solution avec un opérateur And ou qu'on puisse "figer" le premier filtre, ou modifié juste un mot dans le code ...

Bonjour,

Une proposition.

tu as enregistré en xlsx, aucune macro dans ton fichier.

eric

Bonjour,

Merci enfin une réponse ! C'est une solution sauf que dans mon fichier de base (ici c'est une copie très très allégée et les données ne correspondent pas) je dois avoir Binaire1 et Binaire en filtre élaboré et Objet en filtre automatique avec un userform, le fichier avec les macros ci-joint.

Je ne vois pas de différence avec l'autre fichier sur lequel je te ressortais bien les 4 'trucs', ni pourquoi tu veux absolument 2 filtres.

eric

Sur le fichier que je vous ai donné dans objet j'ai 2 modalité (Truc et Machin) et dans mon fichier de départ j'en ai 14, et mon objectif est de pouvoir selectionner une ou plusieurs de ces 14 modalités, d'où l'interet de checkboxes qui impliquent un filtre automatique qui doit s'adapter au filtre élaboré avec ici les variables Binaire1 et Binaire2 (et pour comparaison dans mon fichier de départ j'ai 6 variables pour le filtre élaboré).

Et bien tu augmentes la taille de la plage Critères que tu remplis selon les choix faits.

D'ailleurs on peut réduire à 2 lignes de critères par objet (au lieu de 3).

eric

Je ne peux pas faire comme ça en fait, bon je vous explique suivez bien :

Je travaille sur des magasins, j'ai plusieurs variables : la surface du magasin, la population de la zone..., et je dois repertorier les magasins semblables au magasin que j'étudie.

Par exemple les magasins ayant une surface de + ou - 500 m² que celle de mon magasin, là je creais donc une variable binaire, qui met 1 si le magasin se trouve dans cet intervalle et 0 sinon, je fais ensuite mon filtre élaboré ne gardant que lignes où il y a des 1 (car le filtre élaboré ne permet pas de mettre un intervalle comme critère). Cependant cette zone de crtière est masqué, car pour le futur utilisateur (non informaticien) c'est inutile et du surplus d'informations sans importance.

Or, je souhaite lui laisser le choix de la zone géographique (ici mes objets trucs et machins) grâce à des checkboxes où il pourra choisir lui même Nord, Sud.... d'où la combinaison d'un filtre automatique et d'un filtre élaboré.

Après il n'y a peut-etre pas de solutions à mon problème mais merci quand même.


En fait, sans même parler de tout ça. Le problème est juste : Comment réaliser un filtre automatique en prenant en compte le filtre précédent ? Il y a bien du code qui permet ça, non ?

Je peux apporter encore une précision pour ma demande :

Je dois grâce au bouton "Filtrer" de mon UserForm, avoir le filtre élaboré des variables binaires et le filtre automatique en fonction des checkboxes de ce même UserForm.

Je crois que c'est toi qui ne suis pas...

Ta zone de critère peut très bien être masquée, mais c'est à ta macro d'y mettre les critères (2 lignes par objet coché) et de redéfinir la plage dans .AdvancedFilter Action.

L'extraction te sortira les trucs et les machins listés qui ont un 1.

Il faut tout mettre dans le filtre élaboré puisqu'apparemment il ne tient pas compte des lignes filtrées.

Ou alors je n'ai pas compris ce que tu voulais obtenir...

eric

PS: mais tu tiens vraiment à ton extraction à coté via le filtre élaboré ?

Sinon tu peux simplement filtrer (rapide) ou bien masquer les lignes ne convenant pas par une boucle dessus (permet des trucs filtres plus complexes)

Bon d'accord.. Non il faut que mon extraction se fasse sur place. Mais donc quel est le code pou que grâce à mon UserForm et mes checkboxes, les objets que je veux se mettent dans la plage critère ?


Oui mais là c'est compliqué, en fait tout ça c'est un calcul de potentiel, et quand je choisi mes critères de surface... ça me donne des lignes (toutes zones geographiques confondues) et un certain potentiel, et je veux que le choix des zones geographiques interviennent après (en plus) et qu'on puisse revenir comme on veut à toutes les zones géographiques en gardant les critères de surface...

Bonjour,

Si je comprends ta question ...

Ton UserForm permet de définir les critères de ton filtre ...

Si tu as correctement déclaré tes variables en Public ... elles peuvent être reprises par ta macro qui filtre ...

Si l'explication de principe est suffisante ... tant mieux ...

Sinon .... pour éviter des allers-retours de messages ... ton fichier avec ta macro et ta userform seront indispensables ...

Rechercher des sujets similaires à "appliquer filtre elabore automatique"