EXCEL : fonction qui sait sa position

Résolu
mortelrdv -  
 mortelrdv -
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
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

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

    voici une fonction

    Function toto(cel As Range)
    Application.Volatile

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

    End Function
    0
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. néné
     
    voila la bonne

    Function toto(cel As Range)
    'Application.Volatile

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

    End Function
    0
  7. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Et bien super gb :-)
    Ca faisait un moment que ça me tarabustait ce truc...
    Merci
    0
  8. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
     
    Et moi, je ne croyais pas cela possible ! Chapeau.
    0