Résumer des données en utilisant la fonction SUMIF, Excel VBA
Voici une explication détaillée ainsi qu’un code Excel VBA pour résumer des données en utilisant la fonction SUMIF.
Qu’est-ce que la fonction SUMIF ?
La fonction SUMIF dans Excel permet de faire la somme des valeurs dans une plage en fonction d’une condition spécifiée. Elle vérifie chaque valeur par rapport à un critère et additionne les valeurs correspondantes qui remplissent cette condition.
La syntaxe de la fonction SUMIF dans Excel est la suivante :
=SUMIF(plage, critère, [plage_somme])
- plage : La plage de cellules à évaluer en fonction du critère.
- critère : La condition à remplir pour qu’une cellule soit incluse dans la somme.
- plage_somme (facultatif) : La plage réelle à additionner, si elle est différente de la plage d’évaluation.
Par exemple :
=SUMIF(A1:A10, "Pomme", B1:B10)
Cette formule additionne les valeurs de B1:B10 où les valeurs correspondantes dans A1:A10 sont égales à « Pomme ».
Utilisation de SUMIF en VBA
En VBA, vous pouvez automatiser la fonction SUMIF en utilisant l’objet WorksheetFunction. Voici un exemple détaillé de la façon dont vous pouvez l’implémenter :
Code VBA pour Résumer des Données avec SUMIF
Code détaillé :
Sub ResumerDonneesAvecSUMIF() ' Déclaration des variables nécessaires Dim ws As Worksheet Dim plageSomme As Range Dim plageCritere As Range Dim critere As String Dim resultat As Double Dim celluleSortie As Range ' Définir la feuille de travail sur laquelle vous voulez travailler (ajustez selon votre feuille spécifique) Set ws = ThisWorkbook.Sheets("Feuil1") ' Définir la plage à sommer et la plage qui sera évaluée Set plageCritere = ws.Range("A2:A10") ' Plage avec les critères (par exemple, les catégories) Set plageSomme = ws.Range("B2:B10") ' Plage avec les valeurs à sommer ' Définir le critère (vous pouvez le changer selon vos besoins) critere = "Pomme" ' Par exemple, on veut additionner toutes les valeurs de la colonne B où la colonne A est "Pomme" ' Utiliser la fonction WorksheetFunction pour appliquer SUMIF resultat = Application.WorksheetFunction.SumIf(plageCritere, critere, plageSomme) ' Définir la cellule de sortie (où le résultat sera affiché) Set celluleSortie = ws.Range("D2") ' Afficher le résultat dans la cellule définie celluleSortie.Value = resultat ' Optionnel : Afficher une boîte de message pour confirmer l'action MsgBox "La somme totale pour le critère '" & critere & "' est : " & resultat, vbInformation, "Calcul SUMIF" End Sub
Explication du Code :
1. Déclaration des Variables :
- ws est une variable représentant la feuille de travail sur laquelle vous travaillez.
- plageSomme et plageCritere représentent les plages de cellules à sommer et celles à évaluer par rapport au critère.
- critere est la condition à remplir (dans ce cas, « Pomme »).
- resultat contient le résultat de l’opération SUMIF.
- celluleSortie représente la cellule dans laquelle le résultat sera affiché.
2. Définition de la Feuille et des Plages :
- La variable ws est définie sur une feuille spécifique (ici « Feuil1 »). Vous pouvez remplacer « Feuil1 » par le nom réel de votre feuille.
- plageCritere est définie comme la plage de cellules à évaluer (par exemple, A2:A10).
- plageSomme est définie comme la plage de cellules dont les valeurs seront sommées (par exemple, B2:B10).
3. Définition du Critère :
- Le critère est défini comme « Pomme », ce qui signifie que le code va additionner les valeurs de B2:B10 où la valeur correspondante dans A2:A10 est « Pomme ».
4. Utilisation de SUMIF :
-
- La fonction Application.WorksheetFunction.SumIf(plageCritere, critere, plageSomme) effectue le calcul de la somme.
- Elle vérifie chaque valeur dans plageCritere (A2:A10) pour voir si elle correspond au critère (ici « Pomme »).
- Si une valeur remplit le critère, elle additionne la valeur correspondante dans plageSomme (B2:B10).
- La fonction Application.WorksheetFunction.SumIf(plageCritere, critere, plageSomme) effectue le calcul de la somme.
5. Affichage du Résultat :
- Le résultat de la somme est placé dans la cellule D2 de la feuille de travail (vous pouvez ajuster cela selon vos besoins).
6. Boîte de Message Optionnelle :
- Une boîte de message apparaît pour confirmer à l’utilisateur le résultat du calcul.
Comment Utiliser le Code :
1. Ouvrez Excel et appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
2. Insérez un nouveau module en cliquant sur Insertion > Module.
3. Copiez et collez le code VBA dans le module.
4. Fermez l’éditeur VBA.
5. Retournez sur votre feuille Excel et appuyez sur Alt + F8 pour exécuter la macro ResumerDonneesAvecSUMIF.
Le code va alors additionner les valeurs de la colonne B où la colonne A contient « Pomme » et afficher le résultat dans la cellule D2.
Conclusion :
Ce code VBA permet d’automatiser l’utilisation de la fonction SUMIF dans Excel pour résumer des données en fonction d’un critère donné. En modifiant le critere et en ajustant les plages de données, vous pouvez facilement personnaliser cette solution pour différents scénarios de résumé de données.