Comment utiliser la fonction de sous-total dans VBA (avec exemples)



Vous pouvez utiliser la fonction SOUS-TOTAL dans Excel pour calculer des statistiques globales pour uniquement les cellules visibles d’une feuille.

Vous pouvez utiliser la syntaxe de base suivante dans VBA pour utiliser la fonction SOUS-TOTAL :

Sub FindSubtotal()
Range("A16") = WorksheetFunction.Subtotal(9, Range("B2:B11"))
End Sub

Cet exemple particulier calcule la somme des valeurs dans les cellules visibles dans la plage B2:B11 et affiche le résultat dans la cellule A16 .

Notez que le premier argument de la méthode Sous-total spécifie la méthode d’agrégation à utiliser où :

  • 1 : MOYENNE
  • 2 : COMPTE
  • 3 : COMPTE
  • 4 : MAXIMUM
  • 5 : MINIMUM
  • 6 : PRODUIT
  • 7 : STDEV
  • 8 : STDEVP
  • 9 : SOMME
  • 10 : VAR
  • 11 : VARP

L’exemple suivant montre comment utiliser la méthode Sous-total dans VBA dans la pratique.

Exemple : Comment utiliser le sous-total dans VBA

Supposons que nous ayons l’ensemble de données suivant dans Excel qui contient des informations sur divers joueurs de basket-ball :

Supposons maintenant que nous appliquions un filtre pour afficher uniquement les lignes où l’équipe est égale à A ou C :

Nous pouvons créer la macro suivante pour calculer la somme des cellules visibles dans la colonne des points et afficher les résultats dans la cellule A16 :

Sub FindSubtotal()
Range("A16") = WorksheetFunction.Subtotal(9, Range("B2:B11"))
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Notez que la cellule A16 contient la valeur 168 .

Cela nous indique que la somme des cellules visibles dans la colonne des points est de 168.

Nous pouvons également modifier la valeur du premier argument de la méthode Sous-total pour calculer une métrique différente.

Par exemple, nous pouvons utiliser une valeur de 1 pour calculer à la place la moyenne des cellules visibles dans la colonne des points :

Sub FindSubtotal()
Range("A16") = WorksheetFunction.Subtotal(1, Range("B2:B11"))
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Notez que la cellule A16 contient la valeur 24 .

Cela nous indique que la moyenne des cellules visibles dans la colonne des points est de 24.

Remarque : Vous pouvez trouver la documentation complète de la méthode VBA Subtotal ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :

VBA : Comment additionner les valeurs dans une plage
VBA : Comment calculer la valeur moyenne de la plage
VBA : Comment compter le nombre de lignes dans la plage

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *