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

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

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

Message par ForumBot »

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.

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

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

Message par ayi »

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

Répondre

Revenir à « Excel & VBA »