Filtrer une colonne VBA

Résolu/Fermé
DavyB_6434 Messages postés 4 Date d'inscription lundi 14 octobre 2019 Statut Membre Dernière intervention 15 octobre 2019 - 14 oct. 2019 à 13:18
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 - 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
A voir également:

3 réponses

ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 423
Modifié le 14 oct. 2019 à 15:18
Bonjour

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

Cdlmnt
0
DavyB_6434 Messages postés 4 Date d'inscription lundi 14 octobre 2019 Statut Membre Dernière intervention 15 octobre 2019
14 oct. 2019 à 15:24
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 ?
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 423
14 oct. 2019 à 16:23
Peut être avec une petite macro
https://mon-partage.fr/f/Gfqxll2a/

Cdlmnt
0
DavyB_6434 Messages postés 4 Date d'inscription lundi 14 octobre 2019 Statut Membre Dernière intervention 15 octobre 2019
14 oct. 2019 à 17:00
J'ai pas accès au lien à cause de McAfee Web Gateway , peux tu la copier sur le forum directement :)

Désolée,

Merci.
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 423
Modifié le 14 oct. 2019 à 17:15
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
0
DavyB_6434 Messages postés 4 Date d'inscription lundi 14 octobre 2019 Statut Membre Dernière intervention 15 octobre 2019
15 oct. 2019 à 10:15
Merci pour ton aide.
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 423
15 oct. 2019 à 13:26
De rien
Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)
Cdlmnt
0