Filtre autofilter

Bonjour,

Je souhaite filtrer des données qui se trouvent dans une colonne (dans mon exemple colonne B), le fichier d'origine est actualisé tous les jours par conséquent les variables en question fluctuent également. Je souhaite que le filtre n'omette qu'une seule variable qui ne doit pas être retenue.

En utilisant la fonction enregistrement macro, la procédure ci-dessous est générée. j'ai décoché lors de l'enregistrement la variable inutile (à savoir "MMP"). Mon problème, c'est que la liste de variables varie tous les jours, je souhaiterais donc une procédure qui retienne toutes les variables actualisées et qui enlève seulement la variable "MMP".

Range("B4").Select

ActiveSheet.Range("$A$4:$L$123").AutoFilter Field:=2, Criteria1:="Entite"

ActiveSheet.Range("$A$4:$L$123").AutoFilter Field:=2

ActiveSheet.Range("$A$4:$L$123").AutoFilter Field:=2, Criteria1:=Array( _

"BOFA", "CAR", "DIR", "KOL", "IPTF", "YTU", "ZEZ"), Operator:= _

xlFilterValues

End Sub

Merci par avance pour votre aide.

Bonjour,

à tester,

Sub test()
Dim AL1 As Object
Dim x As Integer, i As Long
Set AL1 = CreateObject("System.Collections.ArrayList")
plg = Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row)
AL1.Add ""
   For i = LBound(plg) To UBound(plg)
      If IsError(Application.Match(plg(i, 1), AL1.Toarray(), 0)) Then x = 1 Else x = 0
      If x = 1 And plg(i, 1) <> "MMP" Then AL1.Add plg(i, 1): Err.Clear
   Next

r = AL1.Toarray()

Range("A1").AutoFilter
If Not ActiveSheet.FilterMode Then Range("A1").AutoFilter
ActiveSheet.Range("$A$1:$A$15").AutoFilter Field:=2, Criteria1:=r, Operator:=xlFilterValues
End Sub

Merci pour la réponse. Je vais l'essayer.

Bonjour,

Ceci ne suffit pas ?

 ActiveSheet.Range("$A$4:$L$123").AutoFilter Field:=2, Criteria1:="<>MMP"

Il semblerait que cela bloque à ce niveau de la procédure..

En même temps pourriez-vous m'expliquer pourquoi l'autofilter se situe au niveau de la colonne A ?.

Range("A1").AutoFilter

If Not ActiveSheet.FilterMode Then Range("B1").AutoFilter

ActiveSheet.Range("$A$1:$A$15").AutoFilter Field:=2, Criteria1:=r, Operator:=xlFilterValues

Merci par avance pour votre réponse.

il faut adapter à votre fichier

Range("$A$4:$L$123").AutoFilter
If Not ActiveSheet.FilterMode Then Range("$A$4:$L$123").AutoFilter
ActiveSheet.Range("$A$4:$L$123").AutoFilter Field:=2, Criteria1:=r, Operator:=xlFilterValues

voici un exemple,

Merci à i20100 pour sa réponse. Effectivement cela marche à présent.

Jean-Eric, pour votre procédure ci-dessous, il semblerait qu'il y ait un problème de syntaxe car ça bloque.

ActiveSheet.Range("$A$4:$L$123").AutoFilter Field:=2, Criteria1:="<>MMP"

Merci à i20100 pour sa réponse. Effectivement cela marche à présent.

Jean-Eric, pour votre procédure ci-dessous, il semblerait qu'il y ait un problème de syntaxe car ça bloque.

ActiveSheet.Range("$A$4:$L$123").AutoFilter Field:=2, Criteria1:="<>MMP"

Le message d'erreur ci-dessous apparaît :

"Erreur de compilation Attendu : expression"

Re,

Nouvel essai :

 ActiveSheet.Range("$A$4:$L$123").AutoFilter Field:=2, Criteria1:="<>MMP",Operator:=xlAnd

Merci Jean-Eric pour votre réponse, je vais l'essayer de suite.

Rechercher des sujets similaires à "filtre autofilter"