Comment supprimer des lignes vides dans VBA (avec exemples)



Vous pouvez utiliser les méthodes suivantes dans VBA pour supprimer les lignes vides :

Méthode 1 : supprimer les lignes vides dans une plage spécifique

Sub DeleteEmptyRowsInRange()
    Sheets("Sheet1").Select
    Range("A1:B10").Select
    Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Cette macro particulière supprimera toutes les lignes vides de la plage A1:B10 de Sheet1 .

Méthode 2 : supprimer les lignes vides dans la feuille entière

Sub DeleteEmptyRowsInSheet()
  
    'turn off screen updating for faster performance
    Application.ScreenUpdating = False
  
    Dim i As Long

    With ActiveSheet

    For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
        If WorksheetFunction.CountA(.Rows(i)) = 0 Then
            ActiveSheet.Rows(i).Delete
        End If
    Next

    End With
  
    'turn screen updating back on
    Application.ScreenUpdating = True
  
End Sub

Cette macro particulière supprimera toutes les lignes vides de toute la feuille active.

Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.

Exemple 1 : Supprimer les lignes vides dans une plage spécifique

Supposons que nous ayons l’ensemble de données suivant dans Excel qui contient des informations sur divers joueurs de basket-ball :

Nous pouvons créer la macro suivante pour supprimer toutes les lignes vides de la plage A1:B10 sur cette feuille :

Sub DeleteEmptyRowsInRange()
    Sheets("Sheet1").Select
    Range("A1:B10").Select
    Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Une fois que nous exécutons cette macro, nous recevons le résultat suivant :

Notez que toutes les lignes vides ont été supprimées de la plage que nous avons spécifiée.

Exemple 2 : supprimer les lignes vides dans une feuille entière

Supposons que nous ayons l’ensemble de données suivant dans Excel qui contient des informations sur divers joueurs de basket-ball :

Nous pouvons créer la macro suivante pour supprimer toutes les lignes vides de la feuille entière :

Sub DeleteEmptyRowsInSheet()
  
    'turn off screen updating for faster performance
    Application.ScreenUpdating = False
  
    Dim i As Long

    With ActiveSheet

    For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
        If WorksheetFunction.CountA(.Rows(i)) = 0 Then
            ActiveSheet.Rows(i).Delete
        End If
    Next

    End With
  
    'turn screen updating back on
    Application.ScreenUpdating = True
  
End Sub

Une fois que nous exécutons cette macro, nous recevons le résultat suivant :

Notez que toutes les lignes vides ont été supprimées de la feuille entière.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :

VBA : Comment supprimer des lignes en fonction de la valeur de la cellule
VBA : Comment supprimer une feuille si le nom contient un texte spécifique
VBA : comment supprimer des fichiers

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *