Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3300 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA pour Excel] Multi Filtre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA pour Excel] Multi Filtre

n°1506892
Dolu007
Posté le 24-01-2007 à 18:19:35  profilanswer
 

Bonjour à tous,
 
Je suis en train de vouloir faire un filtre sur une colonne avec une recherche sur plusieurs critères. Le problème est que sous Excel, on est limité à 2 critères. Voilà un exemple de code VBA Excel :
 

Code :
  1. Selection.AutoFilter Field:=2, Criteria1:="=CH", Operator:=xlOr, _
  2.         Criteria2:="=DN"


 
Moi je voudrais pouvoir faire ceci mais ça ne fonctionne pas :

Code :
  1. Selection.AutoFilter Field:=2, Criteria1:="=CH", Operator:=xlOr, _
  2.         Criteria2:="=DN", Operator:=xlOr, _
  3.         Criteria3:="=GI", Operator:=xlOr, _
  4.         Criteria4:="=DE", Operator:=xlOr, _
  5.         Criteria5:="=LYL", Operator:=xlOr, _
  6.         Criteria6:="=RL"


 
 
Une idée ???

mood
Publicité
Posté le 24-01-2007 à 18:19:35  profilanswer
 

n°1507006
Dolu007
Posté le 25-01-2007 à 08:45:44  profilanswer
 

Personne ce matin pour m'aider ?

n°1507119
Dolu007
Posté le 25-01-2007 à 14:07:03  profilanswer
 

Je pensais que ce n'était pas si compliquer que ça, finalement ça n'a l'air pas si simple. Personne n'a une idée de comment réaliser ce filtrage multi critère ????

n°1507254
ingenieurc​esi
Posté le 25-01-2007 à 20:32:28  profilanswer
 

Dolu007 a écrit :

Je pensais que ce n'était pas si compliquer que ça, finalement ça n'a l'air pas si simple. Personne n'a une idée de comment réaliser ce filtrage multi critère ????


 
yore peut etre une solution
ok c'est pas la plus académique mais ca peut marcher
 
tu peux dupliquer ta zone de choix n foix (n=nombre de critère par exemple) et sur chaque copie tu fais un critère. au bout du compte sur chaque feuille tu as un résultat que tu copie sur une même feuille.
 
et puis, si tu veux, tu peux cacher ces feuilles!!!
 
OK c'est pas top mais ca peut marcher

n°1507261
ingenieurc​esi
Posté le 25-01-2007 à 20:47:40  profilanswer
 

o cas où
 
sur une colonne qui n'a "pas de trou"
nombre de ligne rempli (sur la colonne A avec cet exemple)= Range("A65536" ).End(xlUp).Row +1

n°1507540
Dolu007
Posté le 26-01-2007 à 16:04:07  profilanswer
 

Bonjour,
 
Je ne trouve pas cette méthode très satisfaisante, et j'avoue avoir du mal à la cerner. Une autre solution ?

n°1507545
ingenieurc​esi
Posté le 26-01-2007 à 16:07:21  profilanswer
 

c koi que taime pas ?

n°1507547
ingenieurc​esi
Posté le 26-01-2007 à 16:08:04  profilanswer
 

si tu peux mets ton fichier sur cjoint

n°1507604
ingenieurc​esi
Posté le 26-01-2007 à 19:15:47  profilanswer
 

ce que tu fais ressemble beaucoup à un filtre élaboré mais pour que ca fonctionne il te faut des en tête.
 
exmple
 
tes données
    A             B
1  maison     prix
2  titi      9
3   tata      7
4   toto      9
5   titi      8
6   tata      6
7   tutu      4
8   lulu      3
9   nana      2
10  lula      2
11  nana      1
 
tes critères
     D
1  maison
2  titi
3  tata
 
et tu veux tes résultats en A14
 
ton code est
 
    Range("B5" ).Select
    Range("A1:B11" ).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "D1:D3" ), CopyToRange:=Range("A14" ), Unique:=False
 
tien o courant
 
 

n°1508146
Dolu007
Posté le 29-01-2007 à 10:56:40  profilanswer
 

Bonjour,
 
Je n'ai pas de calcul à faire. Ce que je veux c'est uniquement un filtre multicritère sur une colonne c'est tout. Seulement, avec excel on est limité à 2 actuellement.
 
Voilà.

mood
Publicité
Posté le 29-01-2007 à 10:56:40  profilanswer
 

n°1802493
stoody2003
Posté le 20-10-2008 à 17:36:34  profilanswer
 

slt tu aurais trouvé une solution ? jai le mm souci

n°2386481
Ereonus
Posté le 28-05-2021 à 10:50:35  profilanswer
 

Bonjour,
 
je sais que le sujet date mais j'ai cherché vite fait sur le net sans trouver de solution.
 
J'ai donc gratté un peu et voici ce que j'ai fait et qui fonctionne :
 

Code :
  1. Dim my_big_array As Variant
  2. my_big_array = Array("47000", "47100", "47200", "47202", "47205", "47300" )
  3. ActiveSheet.Range("$A$5:$O$" & Cells(1, 2).Value).AutoFilter Field:=3, Criteria1:=my_big_array, Operator:=xlFilterValues


 
La variable peut ainsi être renseignée avec n'importe quoi (des checkbox pour ma part).
 
Bonne journée.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA pour Excel] Multi Filtre

 

Sujets relatifs
[VBA] Code de compression d'une BBDPhp et excel
[Résolu] [VBA] Comment lancer un .chm ?php+excel
Export données Excel vers MysqlOnglet Excel -> découpe pls files
Probléme de type VBA[VBS]Ouverture d'un classeur excel
Plus de sujets relatifs à : [VBA pour Excel] Multi Filtre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR