Supprimer les lignes filtrées masquées macro

Bonjour tout le monde,

Après plusieurs tentatives, je ne trouve pas de solutions. J'ai un tableau de 6 colonnes, j'aimerais filtrer la colonne 3 et 6 en sélectionnant "a" et "b" pour la colonne 3 et "e" et "i" pour la colonne 6. Par la suite j'aimerais supprimer les lignes masquées.

J'ai essayé une macro :

Sub test()
ActiveSheet.Range().AutoFilter Field:=3, Criteria1:=Array( "a", "b"), Operator:=xlFilterValues
ActiveSheet.Range().AutoFilter Field:=6, Criteria1:=Array ("e", "i"), Operator:=xlFilterValues
ActiveSheet.Range("A2:F37").SpecialCells(xlCellTypeHidden).Delete
End Sub
Cependant ça ne fonctionne pas.

Merci de votre aide je vous joins mon fichier.

Bonjour, si je comprends bien les lignes qui comporte en colonne 3 a ou b seront supprimées quand même si elle ne contiennent pas i en

colonne 6 ?

Pourquoi passer par une étape intermédiaire ( le filtrage ) si c'est pour une suppression de ligne une boucle pour vérifier si colonne 3 ne contient

pas a ou b et colonne 6 ne pas contient i et on supprime.

Bonjour Xmenpl

Je me suis peut être mal exprimé, je souhaite conserver toutes les cellules ou se trouve "a"; "b"; "e" et "i". Donc sur mon fichier les lignes 5/11/15/20/25/27/29/32/37 où il n'a aucune des 4 propositions doivent être supprimés.

Merci

Bonjour AVbr12, Xmenpl (), le forum,

A tester....de ce que j'ai compris...

Option Explicit

Dim tablo, tabloR()
Dim i&, j&, k&

Sub SupprimerLignes()
    tablo = Sheets("Feuil1").Range("A1").CurrentRegion
        k = 0
     For i = 1 To UBound(tablo, 1)
        If tablo(i, 3) = "a" Or tablo(i, 3) = "b" Or tablo(i, 6) = "i" Or tablo(i, 6) = "e" Then
          ReDim Preserve tabloR(1 To 6, 1 To k + 1)
           For j = 1 To 6                              '
            tabloR(j, 1 + k) = tablo(i, j)
           Next j
         k = 1 + k
        End If
     Next i
    Sheets("Feuil1").Range("A1").CurrentRegion.Offset(1, 0).ClearContents
     On Error Resume Next
    Sheets("Feuil1").Range("A2").Resize(UBound(tabloR, 2), 6) = Application.Transpose(tabloR)
End Sub

Cordialement,

Raison de plus pour ne pas utiliser de filtre.

Si vous filtrez a et b en colonne 3 les e et i de la colonne 6 peuvent être masqués.

Faites une boucle qui interroge le contenu.

Sub Macro1()
'
' Macro1 Macro
'boucle Z du bas vers le haut
For Z = Worksheets("FEUIL1").Range("A65536").End(xlUp).Row To 2 Step -1
'condition si a , b , i , e
If Range("C" & Z).Value = "a" Or Range("C" & Z).Value = "b" Or Range("F" & Z).Value = "i" Or Range("F" & Z).Value = "e" Then
'on sort si lettre trouvée
GoTo suite
Else
'on supprime la ligne si lettre pas trouvée
Rows(Z).Select
Selection.Delete Shift:=xlUp
suite:
End If
'boucle sur ligne suivante
Next Z

End Sub

Bonjour Xorsankukai

Merci beaucoup Xmenpl et xorsankukai les deux macros fonctionnent

Rechercher des sujets similaires à "supprimer lignes filtrees masquees macro"