Macro pour Supprimer les Lignes Si une Cellule est identifiée vide

Bonjour à tous,

Je me permets de vous solliciter pour avoir vos lumières sur un petit problème d’exécution de macro.

Sur un fichier, j'ai un bouton qui exécute ce bout de code:

Sub SuppLignesiVide()

For Each C In Sheets("Lignes").Range("C1:C" & Range("C65000").End(xlUp).Row)

If C = "" Then C.EntireRow.Delete

Next C

End Sub

Il fait ce que je lui demande. A savoir que sur la Colonne C, si une Cellule est vide, il supprime la ligne entière correspondant à la cellule vide.

Le soucis, est que c'est très lent, il passe en revue chaque lignes, ce qui n'est pas très optimisé

Est ce que parmi vous quelqu'un aurait une solution de manière à ce que ce bout de code traite la tâche plus rapidement ?

Merci d'avance pour l'aide que vous pourrez m'apporter,

Bonne journée,

Bonjour,

Essaie ceci :

Sub SuppLignesiVide()
    On Error GoTo fin
    With Sheets("Lignes")
        .Range("C1:C" & .Range("C65000").End(xlUp).Row).SpecialCells(xlCellTypeBlanks) _
         .EntireRow.Delete
    End With
fin:
End Sub

Cordialement.

Bonjour Benjamin, MFerrand

Benjamin, supprimer tes lignes via une boucle allant des lignes 1 à N conduira à des erreurs car la suppression d'une ligne fait automatiquement remonter d'une ligne.

Une autre solution est de stocker les lignes à supprimer et ensuite de les supprimer globalement. Comme ceci

Sub SuppLignesiVide()
    Dim cell As Range, lignes_à_supprimer As Range

    With Sheets("Lignes")
        For Each cell In Range(.Cells(1, "C"), .Cells(.UsedRange.Rows.Count, "C"))
            If cell = "" Then
                If lignes_à_supprimer Is Nothing Then Set lignes_à_supprimer = cell.EntireRow _
                Else Set lignes_à_supprimer = Union(lignes_à_supprimer, cell.EntireRow)
            End If
        Next cell
    End With
    lignes_à_supprimer.Delete

End Sub

Bonjour Messieurs,

Un immense merci pour vos réponses.

MFerrand, thev, j'ai retenu vos réponses qui fonctionnent toutes deux.

thev merci pour ton retour d'analyse, il est vrai que la solution telle que tu la proposes limite les erreurs.

Je suis ultra content de votre aide merci encore

Rechercher des sujets similaires à "macro supprimer lignes identifiee vide"