Je ne peux pas référencer une plage avec une feuille pour ma fonction comme je peux avec = vlookup.passant gamme sur une autre feuille à vlookup
Cela fonctionne: =MVLOOKUP(a2,B:C,2,",",", ")
Ce n'est pas: =MVLOOKUP(a2,Sheet3!B:C,2,",",", ")
Le code:
Public Function MVLookup(Lookup_Values, Table_Array As Range, Col_Index_Num As Long, Input_Separator As String, Output_Separator As String) As String
Dim in0, out0, i
in0 = Split(Lookup_Values, Input_Separator)
ReDim out0(UBound(in0, 1))
For i = LBound(in0, 1) To UBound(in0, 1)
out0(i) = Application.WorksheetFunction.VLookup(in0(i), Table_Array, Col_Index_Num, False)
Next i
MVLookup = Join(out0, Output_Separator)
End Function
Je ne sais pas de base et je ne prévois pas de l'apprendre, j'utilise rarement même excel, désolé pour la question boiteuse. Je suppose que basique est vraiment "basique" il m'a fallu 30 minutes pour arriver à ce point de la référence (lecture incluse), mais d'autres 60 minutes de frustration car le problème ci-dessus.
Aidez-moi pour que je puisse retourner à ma vie libre de vba! Bien que le code ci-dessus ait fonctionné après un redémarrage d'Excel, Jeeped m'a donné une solution plus sûre et une fonctionnalité plus universelle. Merci pour ça. Je n'avais pas l'intention de l'utiliser sur d'autres chaînes que les chaînes, mais grâce à l'ajout, j'ai supposé à tort qu'il y a une vérification du type de données à chaque fois et le type passé en arrière-plan et vlookup agissant en conséquence. J'ai également appris à définir des valeurs par défaut pour les variables d'entrée de fonction.
Voir la solution.
Merci encore, Jeeped!
Votre objectif déclaré est suspect, mais vous * pourrait * écrire comme [INDEX] (https://support.office.com/en -us/article/index-function-0ee99cef-a811-4762-8cfb-a222dd31368a)/[MATCH] (https://support.office.com/fr-fr/article/match-fonction-0600e189-9f3c-4e4f- 98c1-943a0eb427ca) paire de fonctions. par exemple. = INDEX (Feuille3! C: C, MATCH (A2, B: B, 0)) ' – Jeeped