Jump to content

Filtre avancé excel - Condition


Recommended Posts

Bonjour,

j'ai fait une filtre avancé dans Excel permattant selon deux critères d'exporter des données d'une feuille source (Fish) vers une autre feuille du même classeur.

Mais je souhaite ajouter deux autres critères avec un opérateur OU dans ce filtre et.... marche pas.

 

Ce qui est OK :

 

Sub ExtractionWRH()
'
    Sheets("Fish").Range("A2:CC35000").AdvancedFilter Action:= _
        xlFilterCopy, CriteriaRange:=Range("H1:I2"), CopyToRange:=Range("A5:CC5"), _
        Unique:=True
    ActiveWindow.SmallScroll Down:=-90
End Sub

 

Ci-dessus, les deux critères sont dans les cellules H1 à I2 et on extrait vers une autre feuille avec des noms de colonnes de A5 à CC5, noms identiques au feuillet source "Fish".

Par exemple ce qui marche avec un seul couple de critères (comme ci-dessus) :

 

         H                      I

1  Plateau        Complément       (ce sont donc les noms de colonnes)

2  WRH            Dans P               (c'est le couple de critères)

 

J'obtiens l'extraction vers une nouvelle feuille de toutes les lignes dont Plateau = WRH   ET   dont Complément = Dans P

 

Et je voudrais pouvoir faire un OU entre le couple H-I et le couple J-K :

 

         H                     I                                              J                      K

1  Plateau    ET    Complément              OU       Plateau    ET      Complément

2  WRH                 Dans P                                   WRH                  Normal 

 

Ce qui devrait conduire à ajouter aux résultats des deux premiers critères ceux des deux deuxièmes critères.

 

Merci beaucoup.

 

Link to comment
Share on other sites

Salut Beankylla,

 

j'y ai pensé mais ça pas le faire car la première sélection est évolutive (extraction de + de lignes ou - de lignes). Ce qui fait que la seconde sélection devra être positionnée à la main. Pas top car je souhaite de l'automatique et il faut les en-têtes de colonnes. Ce qui devient alors impossible.

J'ai fait des macros pour les premières sélections et je voudrais en modifier le langage VBA (Cf. premier message) pour que tout se fasse en un seul lancement de macro.

Il y a plus de 30.000 lignes dans l'onglet source et 10 extracts à faire.

Link to comment
Share on other sites

Salut xperia 22,

 

j'ai tenté ça (comme présenté dans le premier post) avec donc un

CriteriaRange:=Range("H1:K2") ==> KO

J'ai aussi tenté de ne pas ajouter deux fois le champ Plateau et sa valeur WRH en ne laissant que le champ Complément :

CriteriaRange:=Range("H1:J2") ==> KO

J'ai aussi tenté CriteriaRange:=Range("H1:I2") OR CriteriaRange:=Range("J1:K2") ==> KO

Et encore

CriteriaRange:=Range("H1:I2") OR =Range("J1:K2") ==> KO

 

Ça me retourne soit aucune ligne, soit ça additionne des lignes mais sans respecter les conditions de valeurs, soit le débogueur me lance une erreur de code.

Link to comment
Share on other sites

Salut xperia 22,

 

j'ai tenté ça (comme présenté dans le premier post) avec donc un

CriteriaRange:=Range("H1:K2") ==> KO

J'ai aussi tenté de ne pas ajouter deux fois le champ Plateau et sa valeur WRH en ne laissant que le champ Complément :

CriteriaRange:=Range("H1:J2") ==> KO

J'ai aussi tenté CriteriaRange:=Range("H1:I2") OR CriteriaRange:=Range("J1:K2") ==> KO

Et encore

CriteriaRange:=Range("H1:I2") OR =Range("J1:K2") ==> KO

 

Ça me retourne soit aucune ligne, soit ça additionne des lignes mais sans respecter les conditions de valeurs, soit le débogueur me lance une erreur de code.

Il faudait essayer :

        H                      I

1  Plateau        Complément       (ce sont donc les noms de colonnes)

2  WRH            Dans P               (c'est le couple de critères)

3 WRH             Normal                (une ligne par critère OU)

 

et CriteriaRange:=Range("H1:I3") On peut faire autant de ligne que l'on veut. (Attention ton code choisis l'option d'unicité, tu ne verras qu'une ligne si elle est identique sur tous les champs)

Link to comment
Share on other sites

Beankylla, je ne fais pas un copier/coller mais un extract via macro à l'aide d'un filtre avancé et ce, d'un onglet vers un autre.

XperiaZ2, oui c'est Ok avec

        H                      I

1  Plateau        Complément

2  WRH            Dans P

3 WRH             Normal

 

écrit dans des cellules en première ligne pour les noms de colonne qui doivent être strictement identiques aux noms de colonne de l'onglet source (impératif) puis en deuxième et troisième pour les critères de filtre.

La seule chose qui change dans le code : CriteriaRange:=Range("H1:I3")

 

J'aurais encore appris la bonne syntaxe d'une commande Excel... on n'en a jamais fini avec celui-là... :chinois:

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...