Apllication de deux filtre avancé à la suite

Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

Je voudrais simplement appliquer deux filtres avancés de suite, quelque chose dans ce genre:

Range("A2:A1876").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("AA2:AA3"), Unique:=False
Range("B2:B1846").AdvancedFilter Action:=xlFilterInPlace, Unique:=True

En gros, poser un filtre sur la colonne A puis enlever les doublons en ne se basant que sur la colonne B.

Peut-être qu'il y a un moyen de mettre un "AND" entre les deux filtres.. ou peut-être utiliser la plage de critère (mais je ne vois pas comment)? ou finalement utiliser le Unique de l'AdvancedFilter de manière plus précise.

Merci d'avance,

A.+

2 réponses

  1. Utilisateur anonyme
     
    Voila la solution que j'ai trouvé et qui marche, mais c'est très lent....

    Range("A2:A1845").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
    Range("AA2:AA3"), Unique:=False
    For Each ligne In Range("A2:A1845").SpecialCells(xlCellTypeVisible).Rows
    numéro = ligne.Row
    ki = ki + 1
    Range("B" & numéro).Copy
    Range("AB" & ki).Select
    ActiveSheet.Paste
    End If
    Next ligne
    ActiveSheet.ShowAllData
    Range("AB2:AB1845").Copy
    Sheets("Feuil2").Select
    Cells.Clear
    Range("A1").Select
    ActiveSheet.Paste
    Range("A2:A1845").AdvancedFilter Action:=xlFilterInPlace, Unique:=True

    En gros je filtre, copie le résultat dans une nouvelle colonne, puis copie la colonne sur une nouvelle feuille et finalement j'enlève les doublons sur cette nouvelle feuille...
    Étonnamment, si je ne copie pas sur une nouvelle feuille ça ne marche pas....
    Si quelqu'un a plus rapide, je suis preneur car c'est vraiment lent.... (genre 30 secondes pour un fichier de base avec 1800 lignes)
    0
  2. Utilisateur anonyme
     
    Le plus simple et surtout le plus rapide est au final de faire les filtres à la main. En effet il semblerait que le filtre déjà implémenté et appelé par VBA est extrêmement lent...
    0