Suppression des lignes résultant d'un filtre

Résolu/Fermé
Druddy Messages postés 34 Date d'inscription samedi 29 mai 2021 Statut Membre Dernière intervention 29 mars 2023 - 19 juin 2021 à 09:12
Druddy Messages postés 34 Date d'inscription samedi 29 mai 2021 Statut Membre Dernière intervention 29 mars 2023 - 20 juin 2021 à 16:29
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 19 juin 2021 à 11:23
0
Druddy Messages postés 34 Date d'inscription samedi 29 mai 2021 Statut Membre Dernière intervention 29 mars 2023
20 juin 2021 à 08:44
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 12042 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 24 avril 2024 1 426
20 juin 2021 à 11:15
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 samedi 29 mai 2021 Statut Membre Dernière intervention 29 mars 2023
20 juin 2021 à 16:29
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