Bonjour,
Je dois écrire une fonction dont le contenu dépend de sa position. Je vous donne un exemple simple (mais évidemment que la fonction que je dois écrire est plus compliquée).
Si dans une cellule, j'encode "=mafonction()", je voudrais que la valeur retournée soit égale au contenu de la cellule qui se trouve juste au dessus +1.
function mafonction()
mafonction=Worksheets("Feuil1").Cells(mapositionx-1,mapositiony-1).Value+1
end function
Mon problème : comment trouver mapositionx et mapositiony ?
Pour l'instant, j'ai résolu ce problème en ajoutant un paramètre dans ma fonction : ce paramètre pointe sur la cellule elle-même mais ce n'est pas très joli :-(
Si je reprends mon exemple précédent : si je mets par exemple ma fonction dans la cellule G7; j'encode "=mafonction(G7)" et ma fonction s'écrit comme suit :
Function mafonction(pos As Range) As Variant
mafonction = Worksheets("Feuil1").Cells(pos.Row - 1, pos.Column).Value + 1
End Function
Cela fonctionne mais je voudrais éviter d'avoir à définir ce paramètre dans l'appel de la fonction. Est-ce possible ?
Merci d'avance pour votre aide