Macro pour filtrer et supprimer les lignes filtrées

Roni95

XLDnaute Occasionnel
Bonjour le forum

J'ai une base de données pour laquelle je dois enlever certaines infos avant d'obtenir l'état final.
Donc j'ai essayé avec la macro ci-dessous mais elle ne supprime pas mes lignes sélectionnées, elle les masque

ActiveSheet.Range("$A$5:$V$7000").AutoFilter Field:=8, Criteria1:=Array( _
"INT", "MRO", "OSP", "PKG"), Operator:=xlFilterValues
ActiveWindow.SmallScroll Down:=-3
Rows("6657:6728").Select
Selection.Delete Shift:=xlUp
ActiveWindow.SmallScroll Down:=-18
ActiveSheet.Range("$A$5:$V$7000").AutoFilter Field:=8


Dans la colonne que je veux filtrer, il y a FG , INT, MRO, OSP & PKG et mon état final ne doit comporter que du FG donc il me faut supprimer les autres lignes

Merci pour votre aide
 

Lolote83

XLDnaute Barbatruc
Re : Macro pour filtrer et supprimer les lignes filtrées

Salut Roni,
Sans fichier, difficile d'y voir clair, donc ma réponse sera tout aussi claire.
Si j'ai bien compris ta demande :
Dans la colonne que je veux filtrer, il y a FG , INT, MRO, OSP & PKG et mon état final ne doit comporter que du FG donc il me faut supprimer les autres lignes
Le filtre étant posé sur la colonne 8,
ActiveSheet.Range("$A$5:$V$7000").AutoFilter Field:=8,
cela correspond donc à la colonne H.
Code:
    With ActiveSheet
        .Range("A:V").AutoFilter Field:=8, Criteria1:="<>FG", Operator:=xlFilterValues
        .Range("$A$5:$V$7000").End(xlUp).Row).SpecialCells(xlCellTypeVisible).EntireRow.Delete
        .ShowAllData
    End With
Code non testé, juste saisie ici pour information
@+ Lolote83
 

Roni95

XLDnaute Occasionnel
Re : Macro pour filtrer et supprimer les lignes filtrées

Merci Lolote pour cette réponse

J'ai une erreur de syntaxe sur la ligne suivante:
.Range("$A$5:$V$7000").End(xlUp).Row).SpecialCells(xlCellTypeVisible).EntireRow.Delete

Je joins un fichier en espérant que cela aidera (j'ai enlever des lignes pour réduire la taille du fichier

Merci encore
 

Pièces jointes

  • test.xls
    131 KB · Affichages: 67
  • test.xls
    131 KB · Affichages: 63
  • test.xls
    131 KB · Affichages: 60
Dernière édition:

Lolote83

XLDnaute Barbatruc
Re : Macro pour filtrer et supprimer les lignes filtrées

Re salut Roni,
Voici ton fichier en retour.
Un oubli dans le code transmis mais effectivement avec un fichier joint, c'est plus facile a tester.
J'ai conservé ta feuille (renommée en Original) et en ai fait une copie (renommée TEST) pour effectuer un test.
@+ Lolote83
 

Pièces jointes

  • Copie de RONI95 - Supprimer suivant filtre.xls
    229 KB · Affichages: 209

klin89

XLDnaute Accro
Re : Macro pour filtrer et supprimer les lignes filtrées

Bonsoir à tous,

Sinon ceci :
VB:
Sub supprime()
    On Error Resume Next
    Columns(1).Insert
    With Range("b6", Range("b" & Rows.Count).End(xlUp)).Offset(, -1)
        .Formula = "=if(i6<>""FG"","""",1)"
        .Value = .Value
        .SpecialCells(4).EntireRow.Delete
    End With
    Columns(1).Delete
End Sub
klin89
 

Staple1600

XLDnaute Barbatruc
Re : Macro pour filtrer et supprimer les lignes filtrées

Bonsoir à tous

Sur la même voie que Lolote83
Code:
Sub SuprrFilteredLines()
Dim pf As Range
[A5].CurrentRegion.AutoFilter 8, "<>FG": Set pf = [_FilterDatabase]
pf.Offset(1, 0).Resize(pf.Rows.Count - 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
ActiveSheet.ShowAllData: ActiveSheet.AutoFilterMode = False
End Sub

NB: Je n'ai ouvert que la PJ de Roni95.
(celle du message #3)
 

Si...

XLDnaute Barbatruc
Re : Macro pour filtrer et supprimer les lignes filtrées

salut

le bouton étant sur la feuille traitée, cela devrait suffire :
Code:
Sub Test()
  [A:V].AutoFilter 8, "<>FG"
  [$A$6:$V$7000].SpecialCells(12).EntireRow.Delete
  [A:V].AutoFilter
End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 069
Messages
2 085 038
Membres
102 763
dernier inscrit
NICO26