VBA Application.Match - Guide étape par étape avec des exemples

Table des matières

Application Excel VBA.

L'une des meilleures choses à propos de VBA est qu'il a sa propre fonction et qu'il nous permettra également d'accéder à toutes les fonctions de la feuille de calcul sous la classe «Fonction de feuille de calcul». Vous devez avoir déjà utilisé la fonction MATCH en tant que fonction de feuille de calcul, mais ce n'est pas une fonction VBA, nous devons donc accéder à la classe de fonction de feuille de calcul. Dans cet article, nous allons vous montrer comment utiliser la fonction MATCH dans VBA à l'aide de la méthode Application.

Récapitulatif rapide de la fonction MATCH

MATCH est une fonction de recherche qui recherche la position de la valeur de recherche dans le tableau de recherche mentionné. Par exemple, regardez l'image ci-dessous des données.

Dans les données ci-dessus, nous avons des mois de A2 à A6, et si nous voulons savoir à quel endroit le mois «Mar» se produit, nous pouvons utiliser la fonction MATCH.

Voici la syntaxe de la fonction MATCH.

MATCH (valeur de recherche, tableau de recherche, (type de correspondance))
  • Valeur de recherche: pour quelle valeur nous recherchons la position dans le tableau de recherche.
  • Tableau de recherche: dans quel tableau nous recherchons la position de la valeur de recherche.
  • (Type de correspondance): Pour cela, nous pouvons fournir trois arguments.
  1. 1 = inférieur à
  2. 0 = correspondance exacte
  3. -1 = supérieur à

La plupart du temps, nous n'utilisons que «0 Exact Match».

Comment utiliser la fonction Application.Match dans VBA?

Exemple 1

Regardez les données ci-dessous dans Excel.

À partir des données ci-dessus, nous devons trouver la position du mois «Mar» dans la plage de cellules de A2 à A6. Puisque nous avons besoin de résultats dans les cellules D2, commencez immédiatement le code par Range («D2»).

Pour arriver à la valeur dans la cellule D2, nous devons utiliser la fonction de feuille de calcul MATCH, donc pour y accéder en premier, nous devons accéder à l'objet APPLICATION, puis à l'objet WORKSHEET FUNCTION.

Entrez un point pour afficher une liste des fonctions de la feuille de calcul.

Choisissez «Match» dans la liste.

L'un des problèmes de VBA lors de l'utilisation des fonctions de feuille de calcul est que nous ne voyons pas la syntaxe exacte comme nous le voyons avec la fonction de feuille de calcul. C'est l'une des raisons pour lesquelles nous n'avons expliqué la syntaxe qu'au début.

Donc, le premier argument est la valeur de recherche, c'est-à-dire pour quelle valeur nous cherchons à trouver le lieu. Dans ce cas, nous cherchons à trouver l'emplacement de «Mar» qui est dans la cellule C2, donc fournissez la référence de cellule.

L'argument suivant est le tableau de recherche, c'est-à-dire dans quelle plage nous recherchons la position d'une valeur de recherche , pour ces cellules d'alimentation de A2 à A6.

Le dernier argument sera une correspondance exacte, alors indiquez 0.

Code:

Sub Match_Example1 () Range ("D2"). Value = Application.WorksheetFunction.Match (Range ("C2"). Value, Range ("A2: A6"), 0) End Sub

Ok, nous en avons terminé avec la formule.

Exécutez le code via la touche F5 et voyez ce que nous obtenons.

Nous avons donc le résultat 3 car la valeur «Mar» est à la place de la 3 ème position dans la plage A2 à A6.

Cette fonction MATCH peut fournir la position de la valeur de recherche. Cependant, la fonction MATCH est largement utilisée avec la fonction VLOOKUP pour fournir le numéro d'index de colonne basé sur l'en-tête de colonne.

Exemple # 2

Nous allons maintenant voir comment utiliser MATCH comme fonction de support pour la fonction RECHERCHEV.

Regardez les données ci-dessous.

Dans le tableau ci-dessus, nous examinons les ventes du mois «février» de l'année 2018, nous devons donc utiliser la fonction RECHERCHEV. RECHERCHEV est également une fonction de feuille de calcul, alors accédez-y comme nous avons accédé à la fonction MATCH.

La valeur de recherche sera la cellule G2, indiquez donc l'adresse de la cellule.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, End Sub

Table Array will be from A2 to D6.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value,Range("A2:D6"), End Sub

Now we need to provide from which column of the table array we are looking for the result, so this will be from the 3rd column. Instead of supplying the column number as 3, let’s use the MATCH function.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, Range("A2:D6"), Application.WorksheetFunction.Match(Range("H1").Value, Range("A1:D1"), 0), 0) End Sub

Ainsi, la fonction MATCH fournit le numéro de colonne de la plage A1 à D1 pour le mois «Fév». Exécutons le code et voyons comment il obtient automatiquement les numéros de colonne.

Là vous allez, nous avons un résultat de la colonne numéro 2 grâce à la fourniture automatique du numéro de colonne de la fonction MATCH.

Choses dont il faut se rappeler

  • La fonction MATCH recherche la position de la valeur de recherche dans la table matricielle sélectionnée.
  • La fonction MATCH est principalement utilisée avec la fonction VLOOKUP pour fournir automatiquement le numéro d'index de colonne à l'aide de l'en-tête de colonne.
  • La fonction MATCH est disponible en tant que fonction de feuille de calcul dans VBA.

Articles intéressants...