VBA : Suppression des lignes résultant d'un filtre

Bonjour à Tous,

Suite à des filtres, j'aimerais supprimer les lignes résultantes de mes filtres (sauf la 1ère : Titre de mes colonnes).
La 1ère cellule variant en fonction du résultat (ex : Rows("3:3").Select ou Rows("7:7").Select).
A la main, j’obtiens :

'*********************
' DelNonINC Macro
'*********************
Sub DelNonINC()

    ActiveSheet.ListObjects("TabDatas").Range.AutoFilter Field:=8, Criteria1:= _
        "<>INC*", Operator:=xlAnd
    Rows("3:3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp
    ActiveSheet.ListObjects("TabDatas").Range.AutoFilter Field:=8
End Sub

'*********************
' DelMax0 Macro
'*********************
Sub DelMax0()

    ActiveSheet.ListObjects("TabDatas").Range.AutoFilter Field:=11, Criteria1:= _
        "0"
    Rows("7:7").Select
    Range("F7").Activate
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp
    ActiveSheet.ListObjects("TabDatas").Range.AutoFilter Field:=11
End Sub

Je vous remercie par avance,

Bonjour chrisdruddy, le forum,

Tu souhaites donc supprimer les lignes visibles après filtre, mais en conservant les titres.

ActiveSheet.ListObjects("TabDatas").DataBodyRange.SpecialCells(xlCellTypeVisible).Delete

Un essai:

'*********************
' DelNonINC Macro
'*********************
Sub DelNonINC()
   Application.DisplayAlerts = False
    With ActiveSheet.ListObjects("TabDatas")
     .Range.AutoFilter Field:=8, Criteria1:= _
        "<>INC*", Operator:=xlAnd
     .DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
     .Range.AutoFilter Field:=8
    End With
   Application.DisplayAlerts = True
End Sub

'*********************
' DelMax0 Macro
'*********************
Sub DelMax0()
    Application.DisplayAlerts = False
    With ActiveSheet.ListObjects("TabDatas")
     .Range.AutoFilter Field:=11, Criteria1:= _
        "0"
     .DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
     .Range.AutoFilter Field:=11
    End With
   Application.DisplayAlerts = True
End Sub

Cordialement,

Bonjour,

Suggestion complémentaire car la solution précédente ne se restreint pas à la ligne du tableau mais supprime la ligne entière de la feuille.

'*********************
' DelMax0 Macro
'*********************
Sub DelMax0()
    Dim lignes_filtrées As Range

    With [TabDatas].ListObject
        .Range.AutoFilter Field:=11, Criteria1:="0"
        On Error Resume Next
        Set lignes_filtrées = .DataBodyRange.SpecialCells(xlCellTypeVisible)
        On Error GoTo 0
        .Range.AutoFilter Field:=11
    End With
    If Not lignes_filtrées Is Nothing Then lignes_filtrées.Delete

End Sub

Merci à vous cela fonctionne.

Cependant pour Thev, il y a un affichage "bizarre" pendant le traitement qui peut-être source d'erreur et je retiendrais la solution de Xorsankukai.

Mais les 2 fonctionnent au final et encore merci à vous

Rechercher des sujets similaires à "vba suppression lignes resultant filtre"