Suppression des lignes résultant d'un filtre

Résolu
Druddy Messages postés 34 Statut Membre -  
Druddy Messages postés 34 Statut Membre -
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(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp
    ActiveSheet.ListObjects("TabDatas").Range.AutoFilter Field:=11
End Sub


Je vous remercie par avance,

4 réponses

  1. Druddy Messages postés 34 Statut Membre
     
    Bonjour,

    Merci pour la référence mais j'avoue que mon niveau ne me permet pas de comprendre la subtilité dans cet exercice du lien transmis.
    Je n'ai pas compris la définition de la plage.
    Si vous pouviez m'aider à comprendre et adapter la macro?


    Sub DelNonINC()
    derlig = Cells(Rows.Count, 1).End(xlUp)
    Set plage = Range("A3", Cells(derlig, 1))

    With plage
    .AutoFilter Field:=8, Criteria1:="<>INC*", Operator:=xlAnd
    Rows(plage.Row + 1 & ":" & plage.Row + plage.Rows.Count - 1).Delete
    .AutoFilter Field:=8
    .AutoFilter
    End With

    End Sub


    Je vous remercie par avance,
    0
  2. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Juste au passage, la macro doit certainement vous renvoyez une erreur sur la ligne
    Set Plage = ...
    , car la ligne :
     derlig = Cells(Rows.Count, 1).End(xlUp)
    vous renvoi la valeur de la dernière ligne au lieu du numéro de ligne.
    Modifier la ligne
     derlig = Cells(Rows.Count, 1).End(xlUp).Row

    0
  3. Druddy Messages postés 34 Statut Membre
     
    Merci Le Pingou.

    Résolu avec ce code pour ceux qui veulent :

    '*********************
    ' 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
    
    0