Macro de suppression de lignes

Bonjour,

Je voulais me créer une macro qui me permettrait de supprimer des lignes si dans une colonne bien précise il me trouvait une certaine valeure.

Alors j'ai fait ma macro mais elle me supprime qu'une seule ligne à la fois, je comprends pas pourquoi ca continue pas ??

La voici :

Sub m_delete()

Dim Rw As Range
ActiveCell.SpecialCells(xlLastCell).Select
Range(Selection, Cells(1)).Select

For Each Rw In Selection.Rows
    If Rw.Cells(1, 11).Value = 1 Then
             Rw.EntireRow.Delete
    End If
Next Rw

End Sub

Donc dans la sélection si dans la colonne K il trouve la valeure 1 il supprime la ligne entièrement.

Comment faire pour que ca ne s'arrète pas sur la première ?

Bonjour,

pour une suppression de ligne, il faut partir du bas vers le haut

essaie avec ce code (à adapter selon ton numéro de colonne) :

Sub supp1()
Dim i As Long
For i = [A65000].End(xlUp).Row To 2 Step -1
    If Cells(i, 11) = 1 Then Cells(i, 11).EntireRow.Delete
Next i
End Sub

Merci felix pour ta réponse, cependant je n'y suis pas arrivé avec ton code.

J'ai trouvé une autre façon de le faire après quelques tests :

Sub suprim()

[R2].Select

A2:
While ActiveCell.Offset(0, 0) <> ""
If ActiveCell.Value = 1 Then
ActiveCell.EntireRow.Delete
GoTo A1
End If
ActiveCell.Offset(1, 0).Activate
Wend

A1:
If ActiveCell.Value = 1 Then
ActiveCell.EntireRow.Delete
GoTo A2
End If

End Sub

Bonjour,

Ce n'est pas une bonne idée. Essaye le code suivant (tout juste complété) qui a été donné par Félix. C'est beaucoup plus propre.

Sub SupLig()
    Dim i As Single
    For i = [65536].End(xlUp).Row To 2 Step -1
        If Cells(i, 18).Value = 1 Then Cells(i, 18).EntireRow.Delete
    Next
End Sub

Cdlt,

édit : Merci, mais je n'ai repris que le code de Félix.

Ok merci Raja, je connaitrai 2 façons de le faire maintenant.

La votre est beaucoup plus simple cela dit.

Rechercher des sujets similaires à "macro suppression lignes"