Récupérer Range de la cellule d'une fonction

Bonjour,

J'ai un code assez simple à rédiger mais je bloque sur un petit détail. J'ai donc une fonction que j'aimerais pouvoir dérouler sur toute une colonne et qui s'actualise toute seule en fonction des modifications dans la feuille Excel. Pour cela j'ai trouvé la commande "Application.Volatile".

Voici mon code actuel :

Function F()
    Application.Volatile
    Dim i, j, k As Integer
    i = ActiveCell.Row 'ligne
    j = ActiveCell.Column 'colonne
    k = i 'conservation du numéro de ligne initial
    If Cells(i, j - 1).Value = "" Then
        F = "" 'rien
    Else
        Do While Cells(i - 1, j).Value = "" 'recherche dernière ligne non vide au dessus dans la colonne
          i = i - 1
        Loop
        F = Cells(i - 1, j).Value + Cells(k, j - 2).Value 'renvoie la valeur de la dernière ligne non vide au dessus dans la colonne trouvée dans la boucle à laquelle j'ajoute la valeur d'une cellule remplie manuellement dans la colonne j-2
    End If
End Function

L'utilisation de la commande ActiveCell n'est en revanche pas adaptée pour mon problème, je voudrais savoir s'il y avait un équivalent pour récupérer le Range (ligne et colonne) de la cellule dans laquelle la fonction est active car actuellement si je modifie une cellule d'une autre colonne, c'est celle-ci qui est comptée comme ActiveCell pour la réactualisation des valeurs des fonctions.

J'espère avoir été assez clair dans mes explications, merci d'avance !

Bonjour,

Function val_derlig()
    Application.Volatile
    Dim i, j, k As Integer
    Dim cell As Range

    Set cell = Range(Application.Caller.Address)
    i = cell.Row 'ligne
    j = cell.Column 'colonne
    '........................

End Function

Ca fonctionne en effet, je ne connaissais pas la commande Application.Caller c'est exactement ce qu'il me fallait.

Merci beaucoup !

Rechercher des sujets similaires à "recuperer range fonction"