Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

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 *