Fonction de recherche Excel VBA
Lookup est la fonction qui nous aide à récupérer les données de la table principale en fonction d'une seule valeur de recherche. La fonction VBA LOOKUP ne nécessite pas de structure de données comme celle-ci, pour la fonction LOOKUP, peu importe que la colonne de résultat se trouve à droite ou à gauche de la valeur de recherche, elle peut néanmoins récupérer les données confortablement.
Cela fonctionne de la même manière que la fonction RECHERCHEV, mais plus important encore, c'est flexible dans une structure de données. Lorsque nous disons flexible dans la structure des données, cela signifie que VLOOKUP a besoin de toutes les valeurs à droite d'une valeur de recherche dans la table principale, et que tout ce qui reste à la valeur de recherche VLOOKUP ne peut pas le trouver.

Syntaxe
Si vous avez déjà recherché la formule LOOKUP dans l'éditeur VBA, je suis sûr que vous êtes devenu fou car il existe une formule appelée LOOKUP dans VBA.
La raison pour laquelle il n'est pas disponible par défaut parce que LOOKUP n'est pas plutôt une fonction VBA, c'est une fonction de feuille de calcul. Donc, pour utiliser la fonction LOOKUP, nous devons d'abord utiliser la fonction de feuille de calcul dans la classe VBA.

- Arg 1 signifie valeur de recherche
- Arg 2 est notre vecteur de recherche, c'est-à-dire la plage de notre colonne de valeurs de recherche
- Arg 3 est notre vecteur de résultat.
Comment utiliser la fonction de recherche VBA? (Exemples)
Exemple 1
Nous disposons des données suivantes à partir desquelles nous voulons obtenir le prix moyen d'un nom de produit particulier à l'aide de la fonction de recherche dans VBA Excel.

Pour obtenir le prix moyen des accessoires mobiles, utilisez le code suivant.
Étape 1: Démarrez la sous-procédure dans VBA.
Code:
Sub Lookup_Example1 () End Sub

Étape 2: J'ai besoin du résultat dans la cellule F3. Mon code est donc Range ("F3"). Valeur =.
Code:
Sub Lookup_Example1 () Range ("F3"). Value End Sub

Étape 3: Comme je l'ai dit, nous n'avons pas pu accéder directement à la fonction LOOKUP. Alors tout d'abord, utilisez la classe Worksheet Function.

Étape 4: Au moment où nous appliquons la classe Worksheet Function, nous pouvons voir toutes les formules disponibles avec cette classe dans VBA, alors sélectionnez LOOKUP dans cette liste.

Étape 5: Avec les fonctions de feuille de calcul dans VBA, nous ne voyons pas d'arguments clairs de la formule. Ici Arg 1 signifie la valeur de recherche. Notre valeur de recherche se trouve dans la cellule E3, alors écrivez le code sous la forme Range («E3»).
Code:
Sub Lookup_Example1 () Range ("F3"). Value = WorksheetFunction.Lookup (Range ("E3"). Value End Sub

Étape 6: Arg 2 est notre vecteur de recherche, c'est-à-dire la plage de notre colonne de valeurs de recherche. Dans cet exemple, notre plage de vecteurs de recherche va de B3 à B10.
Code:
Sub Lookup_Example1 () Range ("F3"). Value = WorksheetFunction.Lookup (Range ("E3"). Value, Range ("B3: B10"), End Sub

Étape 7: Arg 3 est notre vecteur de résultat. Nous avons besoin du résultat de la colonne Prix moyen, donc le vecteur de résultat est de la plage C3 à C10.
Code:
Sub Lookup_Example1 () Range ("F3"). Value = WorksheetFunction.Lookup (Range ("E3"). Value, Range ("B3: B10"), Range ("C3: C10")) End Sub

Ok, nous en avons terminé avec le codage VBA.
Exécutons le code et nous devrions obtenir le résultat dans la cellule F3.

Comme ceci, nous pouvons utiliser la fonction LOOKUP sous la classe de fonctions de feuille de calcul pour récupérer les données de la valeur de recherche fournie.
Exemple # 2
Utiliser des variables pour la fonction LOOKUP
En utilisant des variables, nous pouvons également obtenir des résultats. Vous trouverez ci-dessous un exemple de code de fonction de recherche avec des variables.
Code:
Sub Lookup_Example2 () Dim ResultCell As Range Dim LookupValueCell As Range Dim LookupVector As Range Dim ResultVector As Range Set ResultCell = Range ("F3") Set LookupValueCell = Range ("E3") Set LookupVector = Range ("B3: B10") Set ResultVector = Range ("C3: C10") ResultCell = WorksheetFunction.Lookup (LookupValueCell, LookupVector, ResultVector) End Sub

Même si cela semble long, cela donnera une bonne exposition aux variables de VBA. Au lieu de fournir directement toutes les valeurs à la formule, nous avons déclaré des variables et leur avons attribué un ensemble de plages et de valeurs.

La déclaration des variables et la définition de la référence à ces variables est toujours une bonne pratique dans tout langage de codage.
Choses dont il faut se rappeler
- LOOKUP est une fonction alternative à VLOOKUP.
- LOOKUP n'exige pas nécessairement que la colonne de résultat se trouve à droite de la valeur de recherche.
- La longueur de plage du vecteur de recherche et du vecteur de résultat doit être la même.
- Plus important encore, nous devons fournir un numéro d'index de colonne, qui est nécessaire pour la fonction RECHERCHEV.