Macro pour filtrer et supprimer les lignes filtrées

  • Initiateur de la discussion Initiateur de la discussion Roni95
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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

Dernière édition:
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

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
 
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)
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour