Autofilter avec plus de 2 critères

Bonjour à tous,

J'essaye d'utiliser un autofilter qui permettrai également de supprimer les lignes dont la cellule comprend l'un des critères mentionnés. Or je souhaite mentionner plus de 2 critères grâce à "Array()". Le seul critère qui semble fonctionner est celui permettant de supprimer les blancs "=" (cellules vides).

Je ne comprends pas pourquoi les autres critères ne fonctionnent pas.

J'ai aussi mis le fichier en pièce jointe pour illustrer.

Le code est le suivant:

Sub test()
With ActiveSheet
    .AutoFilterMode = False
    With Range("i1", Range("i" & Rows.Count).End(xlUp))
        .AutoFilter 1, Criteria1:=Array("*test*", "*voiture*", "=", "*nomail*", "*noemail*", "*text*"), Operator:=xlFilterValues
        On Error Resume Next
        .Offset(1).SpecialCells(12).EntireRow.Delete
    End With
    .AutoFilterMode = False
End With
End Sub

Bonjour

Fais le en plusieurs fois :

Sub test()
    With ActiveSheet
        .AutoFilterMode = False
        With Range("i1", Range("i" & Rows.Count).End(xlUp))
            .AutoFilter 1, Criteria1:=Array("*test*", "*voiture*"), Operator:=xlFilterValues
            On Error Resume Next
            .Offset(1).SpecialCells(12).EntireRow.Delete
        End With

        .AutoFilterMode = False
        With Range("i1", Range("i" & Rows.Count).End(xlUp))
            .AutoFilter 1, Criteria1:=Array("*noemail*", "*text*"), Operator:=xlFilterValues
            On Error Resume Next
            .Offset(1).SpecialCells(12).EntireRow.Delete
        End With

         .AutoFilterMode = False
        With Range("i1", Range("i" & Rows.Count).End(xlUp))
            .AutoFilter 1, Criteria1:="=", Operator:=xlFilterValues
            On Error Resume Next
            .Offset(1).SpecialCells(12).EntireRow.Delete
        End With

        .AutoFilterMode = False
    End With
End Sub

Bye !

Yes ça marche merci !

Je pensais faire ça mais je pensais qu'il y avait un autre moyen pour faciliter le codage et la lecture.

Merci en tout cas

Hello encore.

J'ai essayé de réutiliser le code mais cette fois pour afficher les emails avec une faute de frappe, sans les supprimer afin de les corriger.

Par exemple j'aimerai filtrer les adresses email ayant des fautes frappe comme "Gmial", "Hotmial" ou "Outlok".

Le code est le suivant :

Sub EmailFilter()
    With ActiveSheet

        .AutoFilterMode = False
        With Range("i1", Range("i" & Rows.Count).End(xlUp))
            .AutoFilter 1, Criteria1:="=*gmial*", _
        Operator:=xlOr, Criteria2:="=*hotamil*"
        End With

        .AutoFilterMode = False
        With Range("i1", Range("i" & Rows.Count).End(xlUp))
            .AutoFilter 1, Criteria1:="=*outlok*", _
        Operator:=xlOr, Criteria2:="=*hotmial*"
        End With

    End With
End Sub

Le problème c'est que la seconde partie du code fonctionne uniquement (filtre sur oulok et hotmial), la première partie ne fonctione pas. J'ai essayé la méthode avec Array, mais sans succès non plus.

Une idée ?

13email-filter.xlsm (13.33 Ko)

Bonjour

Essaie ainsi :

Bye !

Hello Gmb,

ton code fonctionne bien, mais je ne cherche plus à supprimer les lignes, mais juste mettre en évidence (en filtrant seulement) les lignes où l'adresse email est incorrect dû à une faute de frappe. le code fonctionne pour supprimer tous les critères mentionnés, mais quand je retire la partie "entirerow.delete", les premiers critères ne fonctionnent pas.

Je sais pas si je suis claire dans mon explication

Alors, on peut s'y prendre autrement :

Bye !

Yes ! c'est exactement ça merci beaucoup

Rechercher des sujets similaires à "autofilter criteres"