EXCEL : fonction qui sait sa position

Résolu/Fermé
mortelrdv - 24 déc. 2007 à 12:11
 mortelrdv - 27 déc. 2007 à 12:08
Bonjour,

Je suis sous excel 2003

je voudrais créer une fonction personnalisé ex. TOTO qui permet lorsque je fais :
dans la case C3 je met =TOTO ça m'affice C3
dans la case XY je met =TOTO ça m'affice XY

Merci
PS : j'ai pas encore les idée bien claire sur comment je vais l'utiliser par la suite
A voir également:

8 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 713
26 déc. 2007 à 18:51
bonjour

Désolé néné mais ta fonction ne risque pas de marcher car si tu mets cette fonction dans 20 cellules, les 20 cellules auront le même résultat et même si tu la modifies pour qu'elle fonctionne, avec par exemple :
Function toto(cel As Range)
    Application.Volatile
    toto = cel.Address(RowAbsolute:=False, columnAbsolute:=False)
End Function

quel intérêt d'écrire =TOTO(A1) pour avoir A1 dans la cellule ?

Par contre, avec un appel écrit =toto(), cette macro fonctionne :
Function toto()
    Application.Volatile
    toto = Parent.Caller.Address(RowAbsolute:=False, columnAbsolute:=False)
End Function
1
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
24 déc. 2007 à 13:47
Bonjour,

Ma réponse n'était pas correcte, effacée
eric
0
Bjr

voici une fonction

Function toto(cel As Range)
Application.Volatile

toto = ActiveCell.Address
toto = Replace(toto, "$", "", 1, -1, vbBinaryCompare = 1)

End Function
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
26 déc. 2007 à 18:23
Bonsoir néné,

Malheureusement ça ne marche que pour la cellule active...
Si la fonction est inscrite dans 3 cellules on ne récupère pas ces 3 adresses différentes lors du recalcul de la feuille.
Je suis également interessé par cette réponse si qcq'un a une idée du comment

eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
voila la bonne

Function toto(cel As Range)
'Application.Volatile

toto = cel.Address
toto = Replace(toto, "$", "", 1, -1, vbBinaryCompare = 1)

End Function
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
26 déc. 2007 à 21:43
Et bien super gb :-)
Ca faisait un moment que ça me tarabustait ce truc...
Merci
0
Raymond PENTIER Messages postés 58801 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 7 janvier 2025 17 264
27 déc. 2007 à 04:42
Et moi, je ne croyais pas cela possible ! Chapeau.
0
Merci
0