Filtrer tout sauf plusieurs valeurs

Y compris Power BI, Power Query et toute autre question en lien avec Excel
G
Giresky5
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 8 septembre 2016
Version d'Excel : 2010

Message par Giresky5 » 8 septembre 2016, 13:30

Bonjour,

Je souhaiterais via une macro filtrer tout sauf certaines valeurs. (ce qui revient à décocher les valeurs en fait).
La macro par apprentissage sélectionne tout sauf les valeurs non souhaité. Cela répond a mon problème mais pas pour le nombre de page que j'ai (70 pages), le copier coller de macro par apprentissage est trop lourd.

Donc j'essaye d'adapter cette macro:

Sheets("531101_D").Select 'ma sheet
ActiveSheet.ListObjects("Table41").Range.AutoFilter Field:=1, Criteria1:=("<>toto"), Operator:=xlFilterValues

Cette macro fonctionne mais elle ne permet de "sortir" que toto, j'aimerais également "sortir" : tutu, titi (10 valeurs au total sur 200)

Voilà si une personne pouvait me dire comme écrire correctement le : criteria1:= (pour sortir plusieurs valeurs) cela m'aiderais bien.

Merci d'avance
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 8 septembre 2016, 13:52

Bonjour,

Essaie :
Sub test()
    Dim crit
    crit = Array("<>toto", "<>tutu", "<>tata", "<>titi")
    Sheets("531101_D").ListObjects("Table41").Range.AutoFilter 1, crit, xlFilterValues
End Sub
G
Giresky5
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 8 septembre 2016
Version d'Excel : 2010

Message par Giresky5 » 8 septembre 2016, 14:06

Visiblement il y a une erreur (Application.ScreeUpdating = True) avec cette ligne:
Sheets("531101_D").ListObjects("Table41").Range.AutoFilter 1, crit, xlFilterValues
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 8 septembre 2016, 14:20

Ce sont les objets de ton code... Tant que je ne peux tester, je ne peux te dire pourquoi... :mrgreen:
G
Giresky5
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 8 septembre 2016
Version d'Excel : 2010

Message par Giresky5 » 9 septembre 2016, 08:19

Voici un fichier qui représente le fichier sur lequel je travaille.
test.xlsx
(12.14 Kio) Téléchargé 50 fois
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 9 septembre 2016, 11:05

Bonjour,

La formulation "<>JU-LIO"... n'est pas appréciée par le filtre !
On va donc récupérer tous les éléments (l'outil Dictionnaire le permet sans doublon), en éliminer ceux qu'on veut exclure et filtrer sur ceux restants....
Sub test()
    Dim d As Object, crit, i%
    Set d = CreateObject("Scripting.Dictionary")
    With Sheets("531101_D").ListObjects("Table1").Range
        .AutoFilter
        For i = 2 To .Rows.Count
            d(.Cells(i, 1).Value) = ""
        Next i
        crit = Split("JU-LIP JU-LIS JU-LIU")
        For i = 0 To UBound(crit)
            d.Remove (crit(i))
        Next i
        crit = d.keys
        .AutoFilter 1, crit, xlFilterValues
    End With
End Sub
Cordialement
giresky5_test.xlsm
(21.2 Kio) Téléchargé 128 fois
G
Giresky5
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 8 septembre 2016
Version d'Excel : 2010

Message par Giresky5 » 10 septembre 2016, 11:20

ça fonctionne je te remercie merci :)
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message