Michael a une macro qui imprime un certain nombre de feuilles de calcul. Parfois, une ou deux des feuilles de calcul à imprimer peuvent ne contenir aucune donnée. Il recherche une technique pour tester si une feuille de calcul contient des données, puis imprimer uniquement ces feuilles de calcul.

Il existe plusieurs façons de tester une feuille de calcul vide.

Bien sûr, cela dépend de ce que vous entendez vraiment par «vide», au moins dans une certaine mesure. Par exemple, si une feuille de calcul ne contient absolument rien – rien dans aucune cellule de la feuille de calcul – nous pourrions la considérer comme vide.

Cependant, vous pouvez avoir une feuille de calcul qui contient des en-têtes de colonne que vous avez ajoutés, mais rien à part ces en-têtes. Bien qu’Excel considère que la feuille de calcul n’est pas vide, vous pouvez la considérer comme vide à des fins d’impression.

Le moyen le plus simple de vérifier si une feuille de calcul est vide est peut-être d’utiliser l’objet UsedRange pour déterminer ce qui se trouve dans la feuille de calcul:

With ActiveSheet.UsedRange     IsSheetEmpty = .Rows.Count = 1 And _       .Columns.Count = 1 And _       .Cells(1,1) = ""

End With

Notez que l’objet UsedRange se compose, en fait, de la plage de cellules utilisées dans une feuille de calcul. Ainsi, si le nombre de lignes de cette plage est 1 et que le nombre de colonnes de cette plage est 1, et qu’il n’y a rien dans la première cellule de l’objet UsedRange, la feuille de calcul est probablement vide.

Selon les caractéristiques de vos données, vous pourrez peut-être encore raccourcir le code:

With ActiveSheet.UsedRange     IsSheetEmpty = .Count = 1 And .Cells(1,1) = ""

End With

Dans cette version, vous vérifiez simplement si le nombre de cellules dans l’objet UsedRange est 1 et si cette cellule particulière est vide.

Si vous avez une ligne d’en-tête (ou deux) dans votre feuille de calcul, vous pouvez ajuster cette technique en fonction des lignes et des colonnes que vous avez dans ces en-têtes. Par exemple, si vous avez des en-têtes dans la plage A1: F4, vous pouvez ajuster la technique de cette manière:

IsSheetEmpty = ActiveSheet.UsedRange.Rows.Count=4 _   AND ActiveSheet.UsedRange.Columns.Count=6

Vous n’avez pas besoin de vérifier le contenu de A1 dans cette instance car vous savez déjà qu’il (et plusieurs autres cellules) contiennent des informations – vos en-têtes. Vous voulez simplement ignorer tout ce qui se trouve dans ces en-têtes pour déterminer s’il y a des informations supplémentaires dans la feuille de calcul.

Si la feuille de calcul est complètement vide (aucune information d’en-tête que vous avez ajoutée), vous pouvez utiliser la fonction de feuille de calcul CountA pour analyser les cellules de la feuille de calcul. Si le résultat de la fonction est supérieur à zéro, la feuille de calcul n’est pas vide. Par exemple, disons que la feuille de calcul que vous souhaitez analyser est spécifiée par l’objet sht. Vous pouvez utiliser cette technique de cette manière:

IsSheetEmpty = Application.WorksheetFunction.CountA(sht.Cells) = 0

Bien entendu, il est possible qu’une feuille de calcul contienne des éléments autres que des informations dans des cellules. Si vous pensez avoir ces types d’objets dans une feuille de calcul (des éléments tels que des formes automatiques, des graphiques ou des graphiques incorporés), votre test de «vide» devra être plus complet. Chacun de ces éléments est contenu dans des collections accessibles dans VBA et vous pouvez vérifier la propriété Count pour chaque collection pour voir si elle est égale à zéro ou non.

_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 (9637) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

lien: / excel-Testing_for_an_Empty_Worksheet [Test d’une feuille de travail vide].