Supprimer des lignes vides avec Excel VBA

Lorsque vous travaillez avec Excel assez longtemps, il devient évident que les lignes vides peuvent causer des ravages à plusieurs niveaux. Ils peuvent provoquer les causes des formules, introduire des risques supplémentaires lors des opérations de copier-coller et parfois même provoquer un comportement étrange des tableaux croisés dynamiques. Si vous recherchez et supprimez manuellement des lignes vides, vous pouvez utiliser la macro présentée ci-dessous pour automatiser cette activité.

Comment ca marche?
La macro utilise la propriété UsedRange de l’objet ActiveSheet pour spécifier une plage de travail. La propriété UsedRange indique la plage de cellules dans laquelle les données ont été entrées. Ensuite, pour vérifier si la ligne entière est vide, exécutez un compteur qui part de la dernière ligne de la plage. Si la ligne est réellement vide, elle sera supprimée. La suppression de lignes sera effectuée à chaque itération et la valeur du compteur sera modifiée à chaque fois.

Sub SupprimerLignesVide ()
'Étape 1: Déclaration des variables
Dim MaPlage As Range
Dim iCompteur As Long
'Étape 2: Définir la plage de cellules
Set MaPlage = ActiveSheet.UsedRange
'Étape 3: Commencez la boucle avec le compte à rebours
For iCompteur = MaPlage.Rows.Count To 1 Step -1
'Étape 4: si la ligne entière est vide, supprimez-la
If Application.CountA(Rows(iCompteur).EntireRow) = 0 Then
Rows(iCompteur).Delete
End If
'Étape 5: Réduisez la valeur du compteur
Next iCompteur
End Sub

1. Premièrement, deux variables sont déclarées dans la macro. La première variable est une variable d’objet appelée MyRange. Il définit la plage de cellules cibles. La seconde est la variable de contrôle iCounter qui sert de compteur.
2. Dans la deuxième étape, la macro transmet à la variable MyRange la propriété UsedRange de la ActiveSheet. La propriété UsedRange indique la plage de cellules dans laquelle les données ont été entrées.
3. À cette étape, la macro définit les paramètres du compte à rebours, de sorte qu’il commence par la valeur la plus grande de la plage MyRange.Rows.Count  et se termine sur une valeur de 1 (la première ligne de la plage indiquée). Dans ce cas, le mot clé Step -1 a été utilisé. Comme le code contient le mot clé Step -1, Excel sait que, dans chaque itération, la valeur du compteur doit être diminuée d’une valeur. Dans la troisième étape, Excel reçoit une commande pour commencer à partir de la dernière rangée de la plage indiquée, puis passez aux rangées précédentes jusqu’à ce que la première rangée soit atteinte.
4. Lorsque vous travaillez avec des plages, vous pouvez tracer avec précision une ligne spécifique et transférer son numéro d’index à la collection Rows. Et ainsi, Range(“D6: D17”).Rows (5) indiquent la cinquième ligne dans la plage de D6: D17. Dans la quatrième étape, la variable stéroïde iCounter est utilisée comme numéro d’index de ligne dans la collection Rows de la variable MyRange. Cela aide à déterminer exactement quelle ligne est traitée dans la boucle d’itération donnée. La macro vérifie si les cellules de la ligne donnée sont vides. S’ils sont vides, les mots de la ligne sont supprimés.
5. À l’étape cinq, la macro commence l’itération suivante, réduisez la valeur du compteur d’une position.

 

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x