Dans cet article, nous allons apprendre à utiliser la fonction SUMIF dans VBA avec plusieurs critères dans Excel à l’aide du code VBA.

Pour obtenir la sortie, nous utiliserons une combinaison de fonctions OFFSET & COUNTA pour créer la liste des gestionnaires de noms.

Comprenons avec un exemple:

  • Nous avons un rapport de ventes pour le vendeur, la région et le produit pour les années 2012 à 2014.

img1

  • Nous voulons connaître le chiffre d’affaires qui remplit les conditions suivantes: –

img2

  • Pour toutes les conditions; nous devons créer des plages de noms Pour créer une plage de noms dynamiques pour le vendeur:

Appuyez sur la touche de raccourci CTRL + F3> Cliquez sur Nouveau et entrez la formule comme = OFFSET (Sheet1! $ B $ 1,1,0, COUNTA (Sheet1! $ A: $ A) -1)

img3

De même, créez des plages nommées pour d’autres conditions * Appuyez sur CTRL + F3 pour ouvrir la fenêtre du gestionnaire de noms (reportez-vous aux listes déjà créées)

img4

  • En utilisant la fonction Coller les noms dans l’onglet Formules, nous obtiendrons toute la liste de plages de noms définis dans les cellules.

img5

  • Cliquez sur Coller la liste

img6

nDate * = OFFSET (Feuille1! $ A $ 1,1,0, COUNTA (Feuille1! $ A: $ A) -1)

nProduct * = OFFSET (Feuille1! $ D $ 1,1,0, COUNTA (Feuille1! $ A: $ A) -1)

nRegion * = OFFSET (Feuille1! $ C $ 1,1,0, COUNTA (Feuille1! $ A: $ A) -1)

nVentes * = OFFSET (Feuille1! $ E $ 1,1,0, COUNTA (Feuille1! $ A: $ A) -1)

nVendeur * = OFFSET (Feuille1! $ B $ 1,1,0, COUNTA (Feuille1! $ A: $ A) -1)

Nous devons suivre les étapes mentionnées ci-dessous pour lancer l’éditeur VB Cliquez sur l’onglet Développeur Dans le groupe Code, sélectionnez Visual Basic

img7

  • Cliquez sur Insérer, puis sur Module

img8

  • Cela créera un nouveau module.

  • Entrez le code suivant dans le module Sub VBASumifs () mysalesman = [H3] myregion = [H4] myproduct = [H5]

tsales = Application.WorksheetFunction.SumIfs ([nsales], [nsalesman], mysalesman, [nregion], myregion, [nproduct], myproduct)

[H6] = tsales End Sub

img9

Cliquez sur Insérer un ruban> Formes> Dessiner une image Faites un clic droit sur l’image et cliquez sur attribuer une macro

img10

img11

  • Après avoir attribué la macro; cliquez sur le bouton Mettre à jour les ventes et nous obtiendrons la sortie dans la cellule H6

img12

Remarque: – Après avoir changé le nom du vendeur, la région et le produit, vous devez cliquer sur Mettre à jour les ventes.

Pour connaître les Ventes qui remplissent les conditions entre 2 dates; Voici un aperçu des critères:

img13

Nous utiliserons le code suivant:

Sous Sumifs2Dates ()

mysalesman = [H3] ma région = [H4] mon produit = [H5]

stdate = [H6]

EndDate = [H7]

tsales = Application.WorksheetFunction.SumIfs ([nsales], [nsalesman], mysalesman, [nregion], myregion, [nproduct], myproduct, [ndate], « > = » & stdate, [ndate], « ⇐ » & EndDate)

[H8] = tsales End Sub

img14

  • En appuyant sur la touche de raccourci ALT + F8 pour ouvrir la fenêtre Macro, puis sélectionnez la macro.

  • Alternativement, vous pouvez appuyer sur F5 pour exécuter le code dans l’écran VBA.

  • Après avoir exécuté la macro, nous obtiendrons la sortie dans la cellule H8

img15

C’est ainsi que nous pouvons utiliser plusieurs critères SUMIF dans VBA pour calculer le total des ventes entre 2 dates.