Dans cet article, vous apprendrez à utiliser la fonction INDEX & MATCH dans VBA pour correspondre à 2 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 du gestionnaire de noms.

Comprenons avec un exemple:

  • Nous avons un bulletin d’étudiant avec le nom de l’étudiant, le sujet et la marque

img1

  • Nous voulons connaître les notes pour le nom et le sujet de l’étudiant saisis dans les cellules F2 et G2

img2

  • Pour calculer les marques en utilisant le code VBA, nous avons utilisé la fonction OFFSET pour créer des plages nommées pour chaque catégorie.

  • Appuyez sur CTRL + F3 pour ouvrir la fenêtre du gestionnaire de noms (les listes sont déjà créées)

img3

  • Utilisation de la fonction Coller les noms dans l’onglet Formules; nous obtiendrons toute la liste des plages de noms définis dans les cellules

img4

  • Utilisation de la fonction Coller les noms dans l’onglet Formules; nous obtiendrons toute la liste des plages de noms définis dans les cellules

img5

  • Cliquez sur Coller la liste

img7

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

img8

  • Cliquez sur Insérer puis Module

img9

Cela créera un nouveau module.

Entrez le code suivant dans le module Sub IndexMatch ()

monNom = [F2]

monSubject = [G2]

mark = Application.WorksheetFunction.Index ([StMark], _ Application.WorksheetFunction.Match (myName, ([StName]), 0) + _ Application.WorksheetFunction.Match (monSubject, [StSubject], 0) – 1)

[H2] = marque End Sub

img9

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

img10

  • Vous pouvez également 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 H2

img11

C’est ainsi que nous pouvons obtenir des résultats à l’aide de la fonction de feuille de calcul Index Match dans VBA.