Filtrer une colonne VBA [Résolu]

Messages postés
4
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
15 octobre 2019
- - Dernière réponse : ccm81
Messages postés
9175
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
11 novembre 2019
- 15 oct. 2019 à 13:26
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
Afficher la suite 

3 réponses

Messages postés
9175
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
11 novembre 2019
1658
0
Merci
Bonjour

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

Cdlmnt
DavyB_6434
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 ?
Commenter la réponse de ccm81
Messages postés
9175
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
11 novembre 2019
1658
0
Merci
Peut être avec une petite macro
https://mon-partage.fr/f/Gfqxll2a/

Cdlmnt
DavyB_6434
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.
Commenter la réponse de ccm81
Messages postés
9175
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
11 novembre 2019
1658
0
Merci
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
DavyB_6434
Messages postés
4
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
15 octobre 2019
-
Merci pour ton aide.
ccm81
Messages postés
9175
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
11 novembre 2019
1658 -
De rien
Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)
Cdlmnt
Commenter la réponse de ccm81