À l'aide d'une plage nommée dans la fonction VBA pour RECHERCHEV

J'ai le suivant sur ma feuille de calcul:

  • Une cellule d'une monnaie [en A1]
  • Une plage de cellules (deux colonnes, l'une pour la monnaie, et l'autre pour un correspondant pourcentage de commission) [défini comme/named/RANGE, et l'étendue de la feuille de calcul]
  • Une cellule [tente] pour déterminer le calcul de pourcentage de commission basée sur A1 et RANGE

J'ai ensuite une fonction VBA appelé Calculate, comme suit:

Function Calculate(LookupValue As Double, LookupRange As Range) As Double
    Calculate = [VLOOKUP(LookupValue, LookupRange, 2)]
End Function

La cellule qui détermine le pourcentage est le suivant:

=Calculate(A1, RANGE)

Problème, c'est que la cellule ne renvoie #VALUE!...

Une idée de ce que je pourrais faire de mal?

J'ai essayé plusieurs choses comme le type-hinting à Range(), en passant LookupRange.Value2 à VLOOKUP, etc, aucun n'a fonctionné.

J'ai aussi essayé de déboguer, notant que LookupRange ne contiennent en réalité l'autonomie requise en Value2, qui est pourquoi j'ai essayé de le passer à la fonction.

Note de côté: La fonction et de la disposition mentionnée ci-dessus est juste un mannequin - la fonction réelle est un peu plus complexe car elle repose sur des tarifs négociés, mensuel des marges, etc. C'est pourquoi je suis à l'aide de VBA en premier lieu. Je sais que je suis en train de faire quelque chose de mal avec la recherche, comme c'est la seule chose qui semble être à défaut au sein de la fonction - tout le reste correspond et calcule.

  • se débarrasser de la [] qui renvoie un objet range. Il n'y a pas de plage appelée quelle que soit votre recherche retourne. Vous souhaitez retourner la valeur: Calculate = Application.WorksheetFunction.RECHERCHEV(LookupValue, LookupRange, 2)`