Filtre avancé : Comment inhiber un critère ?  Sujet résolu

Pour toutes vos questions à propos d'Excel ...

Filtre avancé : Comment inhiber un critère ?

Messagepar piratman » 02 Fév 2010, 13:11

Bonjour,

est-il possible d'inhiber un critère de filtre pour un filtre avancé,
si oui, quel est le caractère ??

En faite, je sais que si on laisse la case où le critère doit être rentré vide, cela inhibe donc ce critère.
Mais mon problème c'est que mes cases de critères sont générés automatiquement et contiennent donc des formules.

Par exemple :
si A1=1, alors je veux filtrer en utilisant le critère X.
Par contre, si A1=0, je ne souhaite pas utiliser le critère X.

Dans ma case de critère je rentre donc : =SI($A$1=1;"X";"")
Cependant, quand A1=0, cela me filtre quand même les cellules vides, ce que je ne veux pas.
J'ai aussi essayé avec "*", mais c'est la même chose...

Quelqu'un a t'il la solution ?
piratman
Membre habitué
 
Messages: 99
Inscription: 03 Oct 2009, 17:41
Version Excel: 2007 FR

Re: Filtre avancé : Comment inhiber un critère ?

Messagepar dubois » 02 Fév 2010, 13:23

Bonjour à tous,

Peux-tu nous faire voir ta BDD
quelques lignes suffit
Amicalement
Claude
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9256
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Re: Filtre avancé : Comment inhiber un critère ?

Messagepar piratman » 02 Fév 2010, 14:45

Bonjour dubois,

voici le fichier en pièce jointe au message :

Critères de filtre à entrer en ligne 9
La ligne 8 est celle utilisée ensuite pour effectuer le filtre.

Merci pour l'aide.
Fichiers joints
films_piratman_v2.xlsm
(73.49 Kio) Téléchargé 12 fois
piratman
Membre habitué
 
Messages: 99
Inscription: 03 Oct 2009, 17:41
Version Excel: 2007 FR

Re: Filtre avancé : Comment inhiber un critère ?

Messagepar dubois » 02 Fév 2010, 15:41

re,

En fait je crois comprendre que c'est en cliquant le bouton "Regénérer Critères"
que tu as problème (les lignes vides sont filtrées)
c'est parce que avec ta formule "", le critère n'est pas vide mais contient une apostrophe.
une solution est d'effacer le filtre avec :
Code: Tout sélectionner
Sub AffiherTout()
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    On Error Resume Next
        ActiveSheet.ShowAllData
    On Error GoTo 0
        Range("a9:g9").ClearContents
            Application.Goto [a11], Scroll:=True
    Application.EnableEvents = True
End Sub

voir bouton "Afficher tout"
Amicalement
Claude
Fichiers joints
piratman.xlsm
(74.22 Kio) Téléchargé 9 fois
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9256
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Re: Filtre avancé : Comment inhiber un critère ?

Messagepar piratman » 02 Fév 2010, 16:35

Re,

les lignes vides sont effectivement filtrées, quand une valeur de A9:G9 est modifiée.

Le problème, c'est que je ne veux pas annuler le filtre, mais je veux filtrer que sur les critères renseignés :
Car même avec ce bouton annulant le filtre, ça ne pallie pas au problème :
Par exemple si je filtre avec comme Pays : "Corée Du Sud", j'ai 0 résultat, hors le film "Fighter in the wind" est dans ma base inscrit avec comme pays "Corée Du Sud. Il n'apparait pas car aucun acteur n'est renseigné pour ce film,
et du coup il est filtré par la case E7 : =SI($E$9<>"";CONCATENER("*";$E$9);"")

Comment modifier cette formule en ligne 7 pour que si le critère associé n'est pas rempli en ligne 8, on ne filtre pas les vides ???
Je sais que c'est ce "" qui n'est pas considérer comme rien, mais je ne sais pas quoi mettre à la place pour que ça marche.
piratman
Membre habitué
 
Messages: 99
Inscription: 03 Oct 2009, 17:41
Version Excel: 2007 FR

Re: Filtre avancé : Comment inhiber un critère ?

Messagepar dubois » 02 Fév 2010, 20:14

re,
Je sais que c'est ce "" qui n'est pas considérer comme rien, mais je ne sais pas quoi mettre à la place pour que ça marche.

Le mieux est de ne rien mettre !
pour filtrer, il te suffit d'entrer la 1ère lettre (ou + pour affiner) directement en ligne 8,
tu mets éventuellement des listes Validation sur cette ligne et tu vire la ligne 9 qui ne sert plus à rien.
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9256
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Re: Filtre avancé : Comment inhiber un critère ?

Messagepar piratman » 03 Fév 2010, 00:17

Re,

non ça ne marcherait pas, car si je ne concatene pas les critères avec "*", ils seront filtrés quand même si le critère ne se trouve pas au début.

Peut être faut il que je filtre en disant "comprend" le terme, mais comment faire ?
piratman
Membre habitué
 
Messages: 99
Inscription: 03 Oct 2009, 17:41
Version Excel: 2007 FR

Re: Filtre avancé : Comment inhiber un critère ?

Messagepar dubois » 03 Fév 2010, 00:35

re,

exemple: lis l'aide (bouton)
film4.zip
(49.25 Kio) Téléchargé 4 fois

édit: ton fichier remanié
Lire le commentaire explicatif en A1
claude
Fichiers joints
piratman_2.xlsm
(62.61 Kio) Téléchargé 4 fois
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9256
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Re: Filtre avancé : Comment inhiber un critère ?

Messagepar piratman » 03 Fév 2010, 18:05

bonjour dubois,

merci bien de t'occuper de "ma cause", c'est vraiment sympa de prendre du temps pour m'aider !

Le fichier "piratman_2" est super, cependant 2 petites choses :

- Lignes 294 à 376 toujours masquées, même s'il n'y a aucun filtre, même si je clique sur "Afficher tout"
- Si un filtre est en cours, et qu'on appuie sur "Afficher tout", le nombre de films affiché devient systématiquement "284/367", alors que si on supprime manuellement les filtres, on a bien 367/367

PS : Le code est très bien organisé, et un débutant comme moi s'y retrouve, bravo !
piratman
Membre habitué
 
Messages: 99
Inscription: 03 Oct 2009, 17:41
Version Excel: 2007 FR

Re: Filtre avancé : Comment inhiber un critère ?  Sujet résolu

Messagepar dubois » 03 Fév 2010, 20:59

re,

Petite explication:
Au départ je n'avais pas ces 4 lignes de code dans macro "Initialise"
Code: Tout sélectionner
    Range("b8:h8").ClearContents
        On Error Resume Next
            ActiveSheet.ShowAllData
        On Error GoTo 0

si bien qu'on initialisait la Base avec les lignes du dernier filtre
tu remarquera le: "ActiveSheet.ShowAllData", qui efface le filtre (mais ne démasque pas les lignes)
- En rajoutant ces 4 lignes, je n'ai pas vérifié et voilà !
--------------------------------------------------
Sur cette version, j'en ai profité pour nommer la colonne Titre, afin de sécuriser la formule NBVAL

Si tu n'y vois pas d'inconvénient, je vais conservé ce fichier comme exemple en remplacement de
"film4" qui commençait à dater.
Version zip en 2003
Amicalement
Claude
Fichiers joints
piratman_3.xlsm.zip
(50.36 Kio) Téléchargé 4 fois
piratman_3.xlsm
(62.76 Kio) Téléchargé 5 fois
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9256
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Suivante

Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Exabot [Bot] et 6 invités