Compter les cellules dans une plage de toutes les feuilles de calcul en utilisant VBA dans Microsoft Excel
Il est possible d’y parvenir avec le COUNT () ou COUNTA () intégré
fonction, mais cela peut être une tâche importante si le classeur contient de nombreuses feuilles de calcul ou si vous ajoutez fréquemment de nouvelles feuilles de calcul au classeur.
Pour compter une plage de plusieurs feuilles de calcul, vous pouvez utiliser la fonction COUNTA comme ceci:
COUNTA (feuille 1: feuille 10! A1: A100)
La formule ci-dessus comptera toutes les cellules non vides dans la plage A1: A100 dans les feuilles de calcul Sheet1 à Sheet10.
Avec la fonction personnalisée ci-dessous, il est facile de compter les cellules dans une plage de toutes les feuilles de calcul d’un classeur:
Function CountAllWorksheets(InputRange As Range, InclAWS As Boolean) As Double ' counts the content of InputRange in all worksheets in the workbook Dim ws As Worksheet, TempCount As Long Application.Volatile True ' calculates every time a cell changes TempCount = 0 For Each ws In ActiveWorkbook.Worksheets If InclAWS Then ' include the active worksheet TempCount = TempCount + _ Application.WorksheetFunction.Count(ws.Range(InputRange.Address)) Else ' exclude the active worksheet If ws.Name <> ActiveSheet.Name Then ' not the active worksheet TempCount = TempCount + _ Application.WorksheetFunction.Count(ws.Range(InputRange.Address)) End If End If Next ws Set ws = Nothing CountAllWorksheets = TempCount End Function
Cette fonction est utilisée de la même manière que les fonctions de feuille de calcul intégrées.
Dans Excel 5/95, la variable InputRange doit être définie comme Variant au lieu de Range.
Cette fonction peut facilement être adaptée pour être utilisée avec d’autres fonctions de feuille de calcul que vous souhaitez utiliser sur toutes les feuilles de calcul d’un classeur.