Suppression des lignes résultant d'un filtre [Résolu]

Signaler
Messages postés
23
Date d'inscription
samedi 29 mai 2021
Statut
Membre
Dernière intervention
20 juin 2021
-
Messages postés
23
Date d'inscription
samedi 29 mai 2021
Statut
Membre
Dernière intervention
20 juin 2021
-
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

Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021
1 512
Messages postés
23
Date d'inscription
samedi 29 mai 2021
Statut
Membre
Dernière intervention
20 juin 2021

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,
Messages postés
10172
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
20 juillet 2021
1 164
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

Messages postés
23
Date d'inscription
samedi 29 mai 2021
Statut
Membre
Dernière intervention
20 juin 2021

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