Macro suppression de lignes en fonction de valeur cell

Bonjour à tous,

J'ai un léger problème, je souhaiterais supprimer une ligne en fonction de la valeur des cellules dans la colonne N.

Pour le moment, j'ai une macro qui marche mais étant donné qu'elle s'applique à plus de 10000 lignes, elle fait bugger le tout, et finis par fonctionner au bout d'une dizaine de minutes.

Est-ce que quelqu'un a une autre idée???

Merci d'avance,

Adrien

Sub CSV_Delete()
Sheets("Feuil2").Select
Dim I     As Long
Dim Plage As Range
Set Plage = Range("N1:N7")
For I = Plage.Cells.Count To 1 Step -1
  If Plage.Cells(I).Value <> "Pending_delivery" Then
    Plage.Cells(I).EntireRow.Delete
  End If
Next
End Sub

Salut,

Essaie de placer

Application.ScreenUpdating = False

en début de macro.

Sur 3000 lignes, la différence va de 20 à 2 secondes environ.

Cordialement

Merci pour la réponse mais l'attente reste encore trop longue. Parfois cela fait même bugger excel.

Aurais-tu une autre idée?

Quelqu'un à quelque chose sur ce sujet?

Bonjour,

Sub CSV_Delete()
Dim DerLig As Long
    With Worksheets("Feuil2")
        Application.ScreenUpdating = False
        DerLig = .Range("N" & Rows.Count).End(xlUp).Row
        .Columns("N:N").AutoFilter
        .Range("$N$1:$N$" & DerLig).AutoFilter Field:=1, Criteria1:= _
        "<>Pending_delivery", Operator:=xlAnd
        .Rows("2:" & DerLig).SpecialCells(xlCellTypeVisible).Delete
        .Columns("N:N").AutoFilter
        Application.ScreenUpdating = True
    End With
End Sub

A+

Parfait ! Tout marche à merveille.

Merci beaucoup.

Rechercher des sujets similaires à "macro suppression lignes fonction valeur"