VBA : Comment écrire des fonctions SUMIF et SUMIFS
Vous pouvez utiliser les méthodes suivantes pour écrire des fonctions SUMIF et SUMIFS à l’aide de VBA dans Excel :
Méthode 1 : fonction SUMIF dans VBA
Sub Sumif_Function()
Range("E2") = WorksheetFunction.Sumif(Range("A2:A12"), "Mavs", Range("B2:B12"))
End Sub
Cet exemple particulier additionnera les valeurs de la plage B2:B12 uniquement lorsque la valeur correspondante dans la plage A2:A12 est égale à « Mavs » et attribuera le résultat à la cellule E2 .
Méthode 2 : fonction SUMIFS dans VBA
Sub Sumifs_Function()
Range("E2") = WorksheetFunction.SumIfs(Range("C2:C12"), Range("A2:A12"), "Mavs", Range("B2:B12"), ">20")
End Sub
Cet exemple particulier additionnera les valeurs de la plage C2:C12 uniquement lorsque la valeur de la plage A2:A12 est égale à « Mavs » et la valeur de la plage B2:B12 est supérieure à 20, puis attribuera le résultat à la cellule E2 . .
Les exemples suivants montrent comment utiliser chacune de ces méthodes en pratique avec l’ensemble de données suivant dans Excel qui contient des informations sur divers joueurs de basket-ball :
Exemple 1 : fonction SUMIF dans VBA
Supposons que nous souhaitions calculer la somme des valeurs dans la colonne des points uniquement pour les joueurs qui font partie de l’équipe Mavs.
Nous pouvons créer la macro suivante pour exécuter cette fonction SUMIF :
Sub Sumif_Function()
Range("E2") = WorksheetFunction.Sumif(Range("A2:A12"), "Mavs", Range("B2:B12"))
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
Notez que la cellule E2 contient la valeur 73 .
Cela représente la somme des valeurs dans la colonne des points pour le joueur de l’équipe Mavs.
Nous pouvons vérifier que cela est correct en calculant manuellement la somme des valeurs dans la colonne des points pour les joueurs de l’équipe Mavs :
Somme des points pour les joueurs Mavs : 22 + 10 + 29 + 12 = 73 .
Exemple 2 : fonction SUMIFS dans VBA
Supposons que nous souhaitions calculer la somme des valeurs dans la colonne des passes décisives uniquement pour les joueurs qui répondent aux critères suivants :
- Le joueur fait partie de l’équipe Mavs.
- Le joueur a marqué plus de 20 points.
Nous pouvons créer la macro suivante pour exécuter cette fonction SUMIFS :
Sub Sumifs_Function()
Range("E2") = WorksheetFunction.SumIfs(Range("C2:C12"), Range("A2:A12"), "Mavs", Range("B2:B12"), ">20")
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
Notez que la cellule E2 contient la valeur 18 .
Cela représente la somme des valeurs dans la colonne des points pour les joueurs de l’équipe Mavs qui ont marqué plus de 20 points.
Remarque : Dans cet exemple, nous avons créé une fonction SUMIFS en utilisant deux plages de critères mais vous pouvez utiliser autant de plages de critères que vous le souhaitez dans la méthode WorksheetFunction.SumIfs .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :
VBA : Comment écrire les fonctions COUNTIF et COUNTIFS
VBA : Comment écrire des fonctions AVERAGEIF et AVERAGEIFS