Apllication de deux filtre avancé à la suite

Fermé
Utilisateur anonyme - 22 juin 2013 à 17:20
 Utilisateur anonyme - 25 juin 2013 à 16:50
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.+
A voir également:

2 réponses

Utilisateur anonyme
22 juin 2013 à 18:17
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
Utilisateur anonyme
25 juin 2013 à 16:50
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