Filtrer une colonne VBA [Résolu]

Signaler
Messages postés
4
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
15 octobre 2019
-
Messages postés
9525
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
7 août 2020
-
Bonjour,
Dans une colonne, j'ai des cellules contenant des valeurs de 0 et 5. Cette colonne peut-être filtrer
La formule qui découle de l'enregistreur de macro marche seulement quand la colonne contient des valeurs entre 1 et 5 :
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=41, Criteria1:=Array("1", "2", "3", "4", "5") Operator:=xlFilterValues
Néanmoins si un jour, si l'une des cellules dans cette colonne contient une valeur égale à 6 ou supérieure, ca ne fonctionnera plus car cette valeur ne sera pas détecté automatiquement. Ce problème je pense est du à l'array qui m'oblige donc à rajouté après la valeur , "5"la valeur , "6") et ainsi de suite pour que cela continue de fonctionner.

Je désir connaitre la commande qui permet de retirer de ma colonne la valeur 2 et 3 directement sans faire : array("1","4","5",) Operator:=xlFilterValues

Je vous remercie de votre aide.
Cordialement

3 réponses

Messages postés
9525
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
7 août 2020
1 877
Bonjour

Peut être comme ceci, obtenu avec l'editeur de macros
Selection.AutoFilter Field:=3, Criteria1:="=1", Operator:=xlOr, Criteria2:=">=4"

Cdlmnt
Messages postés
4
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
15 octobre 2019

Merci mais ta solution utilise l'opérateur OU, cependant si j'ai X valeurs cette macros ne fonctionne plus.

Exemple si dans ma colonne j'ai 0.1.2.3.4.5.6.9..... et je veux retirer les 5,8,11,50 comment je fais ?
Messages postés
9525
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
7 août 2020
1 877
Peut être avec une petite macro
https://mon-partage.fr/f/Gfqxll2a/

Cdlmnt
Messages postés
4
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
15 octobre 2019

J'ai pas accès au lien à cause de McAfee Web Gateway , peux tu la copier sur le forum directement :)

Désolée,

Merci.
Messages postés
9525
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
7 août 2020
1 877
Option Explicit

Const liste = "2,5,8,10,11,15,18"   ' liste a filtrer
Const cofiltre = 3                  ' colonne filtre
Const lideb = 2                     ' premiere ligne

Public Sub filtrer()
Dim li As Long, lifin As Long, tf, k As Long
Application.ScreenUpdating = False
lifin = Cells(Rows.Count, cofiltre).End(xlUp).Row
tf = Split(liste, ",")
For li = lideb To lifin
  For k = 0 To UBound(tf)
    If Cells(li, cofiltre).Value = CInt(tf(k)) Then Rows(li).EntireRow.Hidden = True: Exit For
  Next k
Next li
End Sub
Messages postés
4
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
15 octobre 2019

Merci pour ton aide.
Messages postés
9525
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
7 août 2020
1 877
De rien
Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)
Cdlmnt