Kris a une feuille de calcul où il y a un grand nombre de lignes vides dans les données. Il cherche une macro simple qui supprimera toutes les lignes totalement vides.

Il existe plusieurs façons d’accomplir cette tâche. Les sections suivantes examinent toutes les différentes idées pour se débarrasser de ces lignes gênantes.

Sélection des blancs

Un moyen rapide de vérifier où se trouvent les blancs consiste simplement à sélectionner des blancs dans vos données. Suivez ces étapes:

  1. Sélectionnez toutes les données avec lesquelles vous travaillez.

  2. Appuyez sur F5. Excel affiche la boîte de dialogue Atteindre.

  3. Cliquez sur Spécial. Excel affiche la boîte de dialogue Aller à spécial. (Voir la figure 1.)

  4. Choisissez le bouton radio Blanks.

  5. Cliquez sur OK. Excel sélectionne ces cellules dans votre plage de départ (étape 1)

qui sont vierges.

  1. Affichez l’onglet Accueil du ruban.

  2. Cliquez sur l’outil Supprimer. Excel supprime les lignes.

Il y a une énorme mise en garde à adopter cette approche: elle supprimera toutes les lignes dans lesquelles une cellule est vide. En d’autres termes, cette approche est préférable si les seuls espaces vides de vos données se trouvent dans les lignes que vous souhaitez réellement supprimer.

S’il y a des cellules vides intercalées parmi les données que vous voulez vraiment conserver, n’utilisez pas cette méthode, car elle supprimera également ces lignes.

Sorting

Si vos données ne se composent pas de très nombreuses lignes (par exemple, seulement dix colonnes ou moins), vous pouvez envisager de simplement trier les données. Si vous incluez chaque colonne dans votre spécification de tri, vous vous retrouverez avec les lignes vides les unes à côté des autres et vous pourrez facilement les supprimer.

S’il y a beaucoup de colonnes dans vos données et que cela ne vous dérange pas d’ajouter une colonne d’aide, vous pouvez vous débarrasser des lignes vides dans une variante de la méthode de tri. Disons que vos données sont dans la colonne A à P. Dans la colonne Q, entrez l’une de ces formules:

=COUNTA(A1:P1)

=IF(COUNTBLANK(A1:P1)=16,"DELETE","")

Peu importe celui que vous utilisez; ils vous donneront tous les deux des informations avec lesquelles vous pouvez travailler. Dans le cas de la formule COUNTA, il vous suffit de trier sur la base de la colonne Q et de supprimer tout ce qui a un 0 dans cette colonne.

Dans le cas de la formule COUNTBLANK, vous voudrez changer la valeur assimilée (16) au nombre de colonnes que la fonction COUNTBLANK prend en compte. (Dans ce cas, 16 est le nombre de colonnes dans la plage A: P, inclus.) Une fois la formule en place, vous pouvez trier par colonne Q, puis supprimez simplement toutes les lignes contenant le mot «SUPPRIMER» dans cette colonne .

Une autre variante de l’approche de tri consiste simplement à utiliser les capacités de filtrage d’Excel pour filtrer votre liste afin qu’elle ne contienne que des espaces vides dans l’une des colonnes de données. (Par exemple, vous pouvez filtrer les blancs dans la colonne A.) Vous pouvez ensuite trier les colonnes restantes afin d’avoir des lignes vides entières au même endroit, puis supprimer ces lignes.

Macros

Si vous devez supprimer des lignes vides assez souvent, vous voudrez sérieusement envisager d’utiliser une macro pour faire le dur travail. Votre macro pourrait facilement être ajoutée au ruban ou affectée à une touche de raccourci afin que vous puissiez l’invoquer très facilement.

Plus tôt dans cette astuce, j’ai mentionné que vous pouvez, si vous le souhaitez, utiliser la boîte de dialogue Aller à spécial pour sélectionner des cellules vides dans la plage de vos données, puis supprimer les lignes sur lesquelles ces cellules vides apparaissent. Vous pouvez faire la même chose dans une macro très simple:

Sub DeleteBlanks()

Dim R As Range

Set R = Range("A1:" & ActiveCell.SpecialCells(xlLastCell).Address)

R.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub

N’oubliez pas, cependant, que cette macro supprimera toutes les lignes sur lesquelles il y a des espaces, même si vous souhaitez conserver d’autres données qui peuvent se trouver sur cette ligne.

Une meilleure approche consisterait à effectuer une vérification plus complète de chaque ligne de la feuille de calcul:

Sub DeleteBlankRows()

Dim lRows As Long     Dim J As Long

lRows = ActiveCell.SpecialCells(xlLastCell).Row     Application.ScreenUpdating = False     For J = lRows To 1 Step -1         If WorksheetFunction.CountA(Rows(J)) = 0 Then Rows(J).Delete     Next J     Application.ScreenUpdating = True End Sub

Notez que la macro détermine la dernière cellule utilisée dans le classeur et définit la valeur lRows égale à la ligne sur laquelle cette cellule se produit. Une boucle For …​ Next parcourt ensuite chaque ligne (de la dernière à la première)

et utilise la fonction COUNTA pour déterminer s’il y a quelque chose sur cette ligne. Sinon, la ligne est supprimée.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (254) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.