Filtres Avancés, Filtres inverses, retirer données de base

Alors voici ma situation,

J'ai une base de données sur les commerces d'une villes, donc environ 40 feuilles (chaque arrondissement) contenant environ 3000 données chacunes (les magasins).

Comme chaque ''type'' de magasin est identifié par un code, je suis capable de creer un filtre avancé pour conserver certains magasins. Mais ce que je veux faire, c'est l'inverse. Je veux entrer les codes des magasins que je ne veux PAS conserver. Il s'agirait donc en fait d'un filtre inverse... Analogie : J'ai une boite (grosse boite) de Smarties, je veux conserver toutes les couleurs, sauf les rouges et les bleus !

Merci de bien pouvoir m'aider !

David

P.S. Je vais envoyer une fichier exemple bientôt ainsi que le code avec lequel je travail.

Bonjour et bienvenue sur le forum

Si ton fichier est trop gros ( > 300k) passe par http://www.cjoint.com

Bye !

Bonjour,

Avec un filtre avancé, tu peux filtrer les données "différentes de ..." avec des critères du type

<>Code_Truc

A+

72exemple-filtre.xlsm (213.12 Ko)

Alors voici un exemple de fichier avec lequel je travail.

Je veux filtrer sur places les données, car le fichier original est très lourd, donc copier sur de nouvelles feuilles ne serait pas très efficace selon moi. Les filtres s'effectuent sur chaque feuille en utilisant les boutons de la feuille «critères».

Pour l'instant, mon filtre conserve seulement les données associées aux codes SCIAN des critères .Je tente cependant de conserver seulement les données qui ne sont PAS associées aux codes SCIAN (voir feuille «critères»), puis filtrer ces données (celles qui sont conservés) selon un nombre d'employés, avec un deuxième filtre, pour le deuxième ça va.

Pour le truc <> j'ai essayé, mais comme je travail avec de codes de 6 chiffres, Excel les vois comme des nombres alors toutes les donnés ne sont pas filtrés...

Merci beaucoup pour votre aide !

David

Bonjour

Une proposition qui masque au lieu de filtrer. Mais je me suis limité à cela seulement.

Cela te convient-il ?

Bye !

130exemple-filtre-v1.xlsm (227.68 Ko)

Bonjour,

Un exemple avec filtre avancé :

160exemple-filtre.xlsm (207.85 Ko)

A+

101exemple-filtre-v2.xlsm (221.72 Ko)
101exemple-filtre-v2.xlsm (221.72 Ko)

Bonjour Frangy et gmb, merci beaucoup pour vos réponses !

Gmb je me suis inspiré des macros que tu m'as fournis pour ajuster à ma situation. Cependant, quelques petits trucs m’agacent encore.

D'abord, comme les feuilles du fichier original avec lequel je travail n'ont pas toutes le même nombre de lignes et colonnes et que celles-ci ne sont pas disposées de la même façon, crois tu qu'en effectuant

tablo = f.Range("A2:D" & f.Range("A" & Rows.Count).End(xlUp).Row)

si je sélectionne jusqu'à Z : tablo = f.Range("A2:Z" & f.Range("A" & Rows.Count).End(xlUp).Row) je pourrais m'assurer de tout avoir ?

De plus, j'arrive maintenant à masquer SCIAN et à filtrer par nombre d'employés, avec un SOUS.TOTAL j'obtiens ce que je cherchais ! Mission accomplie (presque).

FInalement, un dernier petite truc, j'ai modifié ta fonction AfficherTout pour qu'elle comporte un ActiveSheet.ShowAllData, ainsi qu'un ajustement de la hauteur des lignes (auparavant, en filtrant quelques fois certaines lignes se retrouvaient cachées...) mais quand j'effectue le ShowAllData mais qu'il n'y as pas de filtre actif, la fonction arrête à la ligne ActiveSheet.ShowAllData. Peut-être connais-tu une façon de créer une condition du type SI filtre actif ALORS ActiveSheet.ShowAllData ?

Voici le fichier avec lequel je travail, toutes les macros utiles sont dans le Module_gmb

Merci beaucoup,

Votre aide m'est très précieuse

David

Tu écris :

si je sélectionne jusqu'à Z : tablo = f…. je pourrais m'assurer de tout avoir ?

Pourquoi sélectionner plus que nécessaire ? Tu vas surcharger la machine qui tournera moins vite… mais c’est comme tu veux.

N’oublie pas cependant que les colonnes utilisée par la macro doivent être au même endroit pour chaque feuille !

mais quand j'effectue le ShowAllData mais qu'il n'y as pas de filtre actif, la fonction arrête à la ligne ActiveSheet.ShowAllData

C’est normal car, si on est en mode filtre, on ne peut pas filtrer à nouveau.

Quand il y a risque de se trouver dans cette situation on met cette instruction :

If FilterMode Then ShowAllData

OK ?

Bye !

PS : j'en profite pour saluer Frangy, toujours aussi brillant, tant en macro qu'en fonctions Excel !

OK ! Alors pour les filtres je crois que si les entêtes sont les mêmes ça va, mais pour la fonction qui ''cache'' les codes SCIAN choisis je vais devoir faire attention et modifier l'emplacement de ceux-ci dans ma base de données !

Merci beaucoup à vous deux pour vos réponses rapides et très efficaces, c'était la première fois que je ne trouvais pas mes réponses en feuilletant le forum et je suis agréablement surpris de voir que la communauté est si active.

Continuez comme ça !

Merci beaucoup !

Un gars qui vient d'en apprendre beaucoup sur VBA...

Rechercher des sujets similaires à "filtres avances inverses retirer donnees base"