VBA : Comment utiliser INDEX MATCH avec plusieurs critères



Vous pouvez utiliser la syntaxe de base suivante pour effectuer une MATCH D’INDEX avec plusieurs critères dans VBA :

Sub IndexMatchMultiple()
    Range("F3").Value = WorksheetFunction.Index(Range("C2:C10"), _
    WorksheetFunction.Match(Range("F1"), Range("A2:A10"), 0) + _
    WorksheetFunction.Match(Range("F2"), Range("B2:B10"), 0) - 1)
End Sub

Cet exemple particulier recherche la valeur dans la cellule F1 dans la plage A2:A10 et la valeur dans la cellule F2 dans la plage B2:B10 et renvoie la valeur correspondante dans la plage C2:C10 à la cellule F3 .

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : effectuer une MATCH D’INDEX avec plusieurs critères à l’aide de VBA

Supposons que nous disposions de l’ensemble de données suivant dans Excel contenant des informations sur les joueurs de basket-ball :

Supposons que nous souhaitions rechercher le joueur qui correspond au nom de l’équipe dans la cellule F1 et à la position dans la cellule F2 et renvoyer le nom dans la cellule F3 .

Nous pouvons créer la macro suivante pour ce faire :

Sub IndexMatchMultiple()
    Range("F3").Value = WorksheetFunction.Index(Range("C2:C10"), _
    WorksheetFunction.Match(Range("F1"), Range("A2:A10"), 0) + _
    WorksheetFunction.Match(Range("F2"), Range("B2:B10"), 0) - 1)
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

La macro recherche « Spurs » dans la colonne Équipe et « Forward » dans la colonne Position et renvoie correctement le nom « Eric » dans la cellule F3 .

Si nous modifions les valeurs dans les cellules F1 et F2 et exécutons à nouveau la macro, elle pourra trouver le nom du joueur en fonction des nouvelles valeurs.

Par exemple, supposons que nous changeons le nom de l’équipe en « Mavs » et la position en « Centre » et que nous exécutons à nouveau la macro :

La macro recherche « Mavs » dans la colonne Team et « Center » dans la colonne Position et renvoie correctement le nom « Chad » dans la cellule F3 .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :

VBA : comment utiliser la correspondance d’index
VBA : comment vérifier si une chaîne contient une autre chaîne
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 *