Dans cet article, nous allons créer une fonction personnalisée pour calculer la somme des cellules de la plage définie pour toutes les feuilles de calcul d’un classeur.

Les données brutes de cet exemple se composent de plusieurs feuilles. Chaque feuille contient les données de l’équipe commerciale, qui comprennent le nom du vendeur et le nombre d’articles vendus par lui à la date indiquée par le nom de la feuille.

Les données de vente sont présentes dans la plage A6: B16 dans le même ordre sur toutes les feuilles de calcul.

ArrowRaw

Sur la feuille «principale», nous voulons le nombre total de ventes effectuées par différents vendeurs. Pour calculer le nombre total de ventes, nous devons ajouter le nombre de ventes de toutes les feuilles du classeur.

ArrowMain

Nous avons utilisé la fonction personnalisée «SumRangeOfAllSheets» pour calculer le nombre total de ventes réalisées par différents vendeurs. La fonction personnalisée «SumRangeOfAllSheets» prend la plage comme entrée.

ArrowOutput

Explication logique

Nous avons créé la fonction personnalisée «SumRangeOfAllSheets» pour calculer la somme des valeurs dans les cellules de la plage définie pour toutes les feuilles de calcul du classeur. La fonction personnalisée «SumRangeOfAllSheets» prend la plage comme entrée. Cette fonction ajoute des valeurs dans les cellules de la plage définie de toutes les feuilles de calcul.

Explication du code

WorksheetFunction.Sum L’objet WorksheetFunction est utilisé pour accéder aux fonctions de feuille Excel à partir de Visual Basics. Nous avons utilisé la fonction SOMME de la feuille Excel pour ajouter les valeurs de la plage.

InputRange.Address Le code ci-dessus est utilisé pour renvoyer l’adresse de la plage spécifiée par l’objet de plage «InputRange».

Veuillez suivre ci-dessous pour le code

Option Explicit

Function SumRangeOfAllSheets(InputRange As Range)

'Declaring variables

Dim i As Integer

Dim Total As Long

'Looping through the sheets in the worksheets collection starting from second sheet

For i = 2 To Worksheets.Count

'Calculating the sum for specified range of all the sheets

Total = Total + WorksheetFunction.Sum(Worksheets(i).Range(InputRange.Address))

Next

SumRangeOfAllSheets = Total

End Function

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer notre travail et l’améliorer pour vous. Écrivez-nous à [email protected]