Cellule Excel à partir de laquelle une fonction est appelée

Comment puis-je obtenir la cellule depuis laquelle ma fonction VBA est appelée ?

En d’autres termes, quel est l’équivalent VBA de INDIRECT(ROW(), COLUMN()) ?

Je ne cherche pas ActiveCell.

Ce que je veux faire, c’est avoir une simple fonction ThisRow_Col(rColumn As String) qui retourne la colonne X de la ligne depuis laquelle elle est appelée. Par exemple, en B2, j’appelle =ThisRow_Col(“A”), elle devrait retourner la valeur de A2. Cela devrait fonctionner quelle que soit la cellule active.

EDIT : Merci Charles pour la réponse : Application.Caller. Le code suivant obtient la colonne X de la ligne courante, indépendamment de l’endroit où se trouve la sélection :

Function ThisRow_Col(rColumn As Range)
    ' Return INDIRECT(rcolumn & ROW())

    ThisRow_Col = Application.Caller.Worksheet.Cells(Application.Caller.Row, rColumn.Column).Value

End Function

Notez que passer la colonne en tant que Range (ThisRow_Col(A1)) est préférable à la passer en tant que chaîne, car Excel peut automatiquement mettre à jour les formules si vous déplacez ou insérez des colonnes. Bien sûr, la ligne 1 de A1 est juste une convention.

Application.Caller retourne l’objet range depuis lequel la fonction UDF est appelée.