Visual Basic For Applications
Comment supprimer les lignes vides sur Excel avec du VBA ?

Une solution pour supprimer toutes les lignes vides d’une feuille d’un fichier Excel en utilisant du VBA.

Principes

Le code que vous trouverez ci-dessous permet de supprimer toutes les lignes vides d’une feuille Excel.

Cette macro VBA peut être particulièrement utile pour parer aux mauvaises manipulations : il arrive parfois en utilisant des filtres qu’on ajoute des lignes en trop en bas dans la feuille. Ce type d’erreur est assez fréquent et si on ne fait pas attentionet peut être la cause de problèmes importantes.

Pour l’utiliser il suffit d’attribuer le nom de l’onglet à traite à la constante (à la place de DATA et toujours entre guillemets).







Particularité du code VBA qui supprime les lignes vides de la feuille Excel

Vous le remarquerez, cette macro VBA est assez courte et relativement simple. Elle présente cependant 2 fonctions qui sont assez pratiques.

Boucle VBA de bas en haut

Pourquoi utiliser ce type de boucle sur Excel ?

La macro VBA boucle du bas vers le haut. C’est-à-dire qu’elle commence à partir de la dernière ligne de votre feuille.

Pourquoi ? Tout simplement car lorsqu’on supprime une ligne, on remonte de 1 toutes les lignes suivantes. Ainsi, si nous avions utilisé une boucle croissante, à chaque fois qu’une ligne aurait été suprimée, la macro aurait sauté une ligne. Par exemple, dans le cas de 2 lignes vides conscécutives, une seule aurait été supprimée. Pour éviter cela, il aurait fallut ajouter une condition IF qui ferait reculer le compteur à chaque fois que le code supprime une ligne.

En utilisant une boucle décroissante, on simplifie considérablement la macro puisque nous n’avons besoin que d’une seule condition.

Comment utiliser une boucle VBA de bas en haut ?

Pour ce faire, le code doit connaître quelle est la dernière ligne non-vide de votre feuille, peu importe quelles colonnes sont vides ou non.

Cells.SpecialCells(xlCellTypeLastCell).Row

La syntaxe ci-dessus nous permet de déterminer cette limite. C’est donc pourquoi nous attribuons cette valeur à notre variable RowNumber.


La fonction .FIND

La fonction .FIND permet de rechercher une valeur dans une plage de cellules.

Dans notre macro VBA, le caractère * indique à la fonction de rechercher n’importe quel type de caractère. Donc, si elle ne trouve rien, c’est qu’il n’y a rien sur l’ensemble de la ligne et que celle-ci peut être supprimée.



La macro pour supprimer les lignes vides d’une feuille Excel

 
'Auteur : www.Indexmatch.fr
'Date : 03/2020
 
Option Explicit
 
Const TARGET_SHEET_NAME As String = "DATA" 'A remplacer par le nom de l'onglet que vous voulez traiter.
 
Sub supprimer_lignes_vides()
 
Dim RowNumber As Integer
 
    Sheets(TARGET_SHEET_NAME).Activate
 
    RowNumber = Cells.SpecialCells(xlCellTypeLastCell).Row
 
    Do While RowNumber > 0
 
        If Rows(RowNumber).Find("*") Is Nothing Then Rows(RowNumber).Delete
 
        RowNumber = RowNumber - 1
 
    Loop
 
 
End Sub
Notez nous !
[Moyenne : 4.8]