Ma formule VBA besoin de connaître la postion de sa cellule

Bonjour à tous,

Je cherche à créer une fonction qui pour fonctionner doit connaître les coordonnées de la cellule dans laquelle elle est insérée.

"Activecell" me retourne (comme on peut s'y attendre) les coordonnées de la cellule active à l'instant T et ce n'est pas ce que je cherche.

Je ne sais pas s'il existe une fonction pour connaître les coordonnées de la cellule dans laquelle la fonction est insérée.

Google ne me retourne rien...

Des pistes ?

Merci pour votre aide,

Bonjour,

si je comprend bien vous allez arrivez à une référence circulaire...

Si on prend la fonction INDIRECT en lui donnant en paramètre ses propre coordonnées voici ce que l'on obtient :

circulaire

Alors une fonction faite en VBA devrait arriver au même résultat, enfin je pense...

Mais n'ayant pas de base de travail...

Il est vrai qu'avec un fichier on comprend (quelque fois) mieux les interrogations de chacun

@ bientôt

LouReeD

Bonjour,

Merci pour cette réponse.

La cellule ne serait pas dans les arguments de la fonction.

L'objectif serait justement d'éviter la cellule dans les calculs... Et pour ce faire j'ai besoin de connaître ses coordonnées par un autre moyen que de la placer en argument.

Mais autant je sais utiliser "Activecell", autant je sais obtenir un Range par recherche ou autre, autant je ne sais pas obtenir dans ma fonction les coordonnées de la cellule dans laquelle on met cette fonction.

Mais peut être que ça n'existe pas.

Si vous voulez jouer, j'ai joint un fichier...

13exemple.xlsm (10.27 Ko)

Dans ce cas bien précis vous pouvez faire un découpage :

=200-(SOMME.SI(A$1:A4;"Rouge";B$1:B4)+SOMME.SI(INDIRECT("A6:A"&NBVAL(A:A));"Rouge";INDIRECT("B6:B"&NBVAL(A:A))))

200 - ( la somme si rouge des cellules du dessus + la somme si rouge des cellules du dessous )

Mais si vous recopiez cette formule en la tirant vers le bas vous retombez sur des cellules qui se calculent elles donc référence circulaire...

@ bientôt

LouReeD


En ajoutant une colonne afin d'éviter la référence circulaire :

@ bientôt

LouReeD

Bonjour,

    'Adresse cellule d'appel :
        Application.ThisCell.Address 

par expérience j'ai constaté que les fonctions personnalisées étaient parfois appelées à tort en travaillant ailleurs.

En cas de besoin tu peux aussi tester :

    'Nom classeur :
        Application.ThisCell.Parent.Parent.Name
    'Nom feuille :
        Application.ThisCell.Parent.Name

eric

Bonjour,

Merci Eric,

C'est exactement ce que je cherchais, je ne connaissais pas "thiscell"

Ma fonction maison va pouvoir fonctionner !!!

LouReed, merci pour votre aide et nos échanges.

Je proposais également une formule dans la cellule I5 du fichier que j'ai mis en exemple précédemment.

Elle me semble plus simple à écrire que celles que vous proposez et peut se déplacer.

Bonne journée,

Rechercher des sujets similaires à "formule vba besoin connaitre postion"