Bonjour a tous,

Formule RECHERCHEV() transposé en VBA

Après lecture et mise en pratique dans une feuille Excel, du tutoriel RECHERCHEV()
(vraiment très bien ce tutoriel) j’essaie de transposer cette fonction RECHERCHEV() en VBA.
Malgré mes nombreuses tentatives, je ne parviens pas à la faire fonctionner.
Je pense avoir une erreur de syntaxe.

Au final j’envisage d’utiliser cette fonction dans plusieurs TextBox sur une USF.
RECHERCHEV() sera imbriqué avec COLONNE(), dans le but de pallier au problème d’ajout – suppression de colonne dans la feuille Excel, qui me sert de base de données.

Je me suis complètement perdu avec la syntaxe, dans un premier temps j’aimerais faire fonctionner la fonction RECHERCHEV() uniquement dans sa plus simple expression.

Comme avec cette version :
C’est la variable NumCodeArticle qui fournit le numéro à chercher.
La variable RecupValeur récupère la « Désignation » qui correspond au « Code article » de l’élément cherché.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
RecupValeur = Evaluate("VLOOKUP( " & NumCodeArticle & ",Feuil2!A1:AT9000,Feuil2!E1) ")
Les variables NumCodeArticle et RecupValeur sont de type Variant cars je n’ai pas su trouver le type exact à utiliser sans que cela génère une erreur (type incompatible)

Lorsque j’exécute cette Sub, la variable RecupValeur ne renvoie rien du tout. (Même pas un signe).
Si je modifie le type des variables par Long et String j’obtiens une erreur (erreur d’exécution 13, Incompatibilité de type). Et la variable RecupValeur renvoie : RecupValeur= ‘’ ‘’


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Sub FormuleDeRechercheFormatVBA()
 
Dim NumCodeArticle As Variant 
 Dim RecupValeur As Variant
 
 NumCodeArticle = 9104299
 
   RecupValeur = Evaluate("VLOOKUP( " & NumCodeArticle & ",Feuil2!A1:AT9000,Feuil2!E1) ")
 
End Sub
Voilà au final ce que je cherche à faire fonctionner dans des TexBox.
C’est le contenu de la variable RecupValeur qui fournira la value des TexBox
( TexBox4.value= RecupValeur

Ici c’est RECHERCHEV() imbriquer avec COLUMN() et les données se trouve sur un classeur différent ( un autre classeur) que celui qui contient la USF.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
RecupValeur = Evaluate("VLOOKUP(& NumCodeArticle & ,[DEVLSAPTRAV500.xls]DEVL.SAP.TRAV.S00!C1:C46,COLUMN([DEVLSAPTRAV500.xls]DEVL.SAP.TRAV.S00!R1C5))")
Je crois qu’il y a des erreurs sur la syntaxe.

Merci a tous pour un coup de main.