[VBA pour Excel] Multi Filtre

Multi Filtre [VBA pour Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 24-01-2007 à 18:19:35    

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 ???

Reply

Marsh Posté le 24-01-2007 à 18:19:35   

Reply

Marsh Posté le 25-01-2007 à 08:45:44    

Personne ce matin pour m'aider ?

Reply

Marsh Posté le 25-01-2007 à 14:07:03    

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 ????

Reply

Marsh Posté le 25-01-2007 à 20:32:28    

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

Reply

Marsh Posté le 25-01-2007 à 20:47:40    

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

Reply

Marsh Posté le 26-01-2007 à 16:04:07    

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

Reply

Marsh Posté le 26-01-2007 à 16:07:21    

c koi que taime pas ?

Reply

Marsh Posté le 26-01-2007 à 16:08:04    

si tu peux mets ton fichier sur cjoint

Reply

Marsh Posté le 26-01-2007 à 19:15:47    

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
 
 

Reply

Marsh Posté le 29-01-2007 à 10:56:40    

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à.

Reply

Marsh Posté le 29-01-2007 à 10:56:40   

Reply

Marsh Posté le 20-10-2008 à 17:36:34    

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

Reply

Marsh Posté le 28-05-2021 à 10:50:35    

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed