Suppression des lignes résultant d'un filtre

Résolu
Druddy Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -  
Druddy Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -
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,
A voir également:

4 réponses

f894009 Messages postés 17272 Date d'inscription   Statut Membre Dernière intervention   1 713
 
0
Druddy Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
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
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
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
Druddy Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
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