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