CALC: récupérer le nom d'une feuille

Bonjour

Voici une nouvelle question envoyée à l'aide du formulaire de demande d'aide (http://fr.libreoffice.org/get-help/poser-une-question/).
Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que le demandeur reçoive une copie de votre réponse.

Email:: cottignies.christian@wanadoo.fr
Sujet:: CALC: récupérer le nom d'une feuille
Question:: Quelle est la fonction qui permet de récupérer dans la cellule le nom de la feuille dans laquelle se trouve cette cellule

Bonjour

Email:: cottignies.christian@wanadoo.fr
Sujet:: CALC: récupérer le nom d'une feuille
Question:: Quelle est la fonction qui permet de récupérer dans la cellule le nom de la feuille dans laquelle se trouve cette cellule

Bonjour,
Tu peux tester cette formule à entrer ou copier dans A1

=SI(1;STXT(CELLULE("FILENAME");CHERCHE("$";CELLULE("FILENAME");1)+1;256);MAINTENANT())

Bonsoir,

dans la réponse de Jean-Micel PIERRE, je ne comprends pas l'intérêt du test : SI(1;...;...)
le test donnant toujours "vrai", c'est la fonction STXT qui a lieu.
La formule suivante devrait être suffisante:

=STXT(CELLULE("FILENAME");CHERCHE("$";CELLULE("FILENAME");1)+1;256)

Cordialement,
Franck

Désolé pour cette réponse un peu trop rapide... en effet la fonction CELLULE("FILENAME") ne se réactualise pas si on change le nom de la feuille :frowning:

Le fait de la placer dans la fonction SI() semble forcer cette actualisation.

Je veux bien quelques explications pour tenter de comprendre

Franck

Merci pour la réponse... la formule donnée marche, mais je la trouve vraiment compliquée...
J'effectue actuellement une migration de feuilles de calcul Lotus 123 vers OPENOFFICE et sous Lotus123 il suffit d'écrire la fonction @CELL("sheetname";A1), qui n'est pas transformée automatiquement quand on lit un fichier .123 sous OpenOffice...

La fonction "sheetname" de Lotus 123, comme celles de MS Excel, embarquent la plupart du temps une programmation plus compliquée qui disparait derrière la simplicité du nom de la fonction.
Il est aussi possible de créer avec LO des fonctions aux noms simples cachant la programmation plus complexe.

Merci pour la réponse... la formule donnée marche, mais je la trouve vraiment compliquée...
J'effectue actuellement une migration de feuilles de calcul Lotus 123 vers OPENOFFICE et sous Lotus123 il suffit d'écrire la fonction @CELL("sheetname";A1), qui n'est pas transformée automatiquement quand on lit un fichier .123 sous OpenOffice...

Christian COTTIGNIES, tel GSM: 0681448878
-----Message d'origine-----

D'accord avec votre remarque...
Comment donc pourrais-je inclure la nouvelle fonction NOMFEUILLE équivalente à votre formule
"=STXT(CELLULE("FILENAME");CHERCHE("$";CELLULE("FILENAME");1)+1;256)" dans la bibliothèque des fonctions de LO ? pour la rendre disponible dans tous mes fichiers Calc.

Merci d'avance de votre conseil.

Christian COTTIGNIES, tel GSM: 0681448878
-----Message d'origine-----

À ma connaissance, il n'est pas possible de créer une fonction utilisateur (UDF) (c-à-d une macro) qui puisse connaître la cellule appelante sans la spécifier lors de l'appel.

Bref, le jeu en vaut-il la chandelle ?

Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que la liste reçoive une copie de votre réponse.

Bien cordialement,

Dans un premier temps pour rendre cette fonction disponible dans toutes les feuilles d'un même fichier Calc je lui est donné un nom ("NomFeuille") via --> Insertion --> Expressions Nommées --> Définir (scope global). En rentrant "NomFeuille" dans une cellule, le nom de la feuille est bien mis dans la cellule. Le problème est que le contenu de la cellule n'est pas modifié lorsque le nom de la feuille est modifié, il faut sauvegarder, fermer et ré ouvrir le fichier.

Christian COTTIGNIES, tel GSM: 0681448878
-----Message d'origine-----

Si je comprends bien, dans une cellule vous avez entré :
=NomFeuille

Avec F9 (menu Données > Calculer > Recalculer), le résultat est recalculé lors du changement du nom de la feuille, sans avoir re-ouvrir.

Note : la fonction MAINTENANT() forçant la mise à jour permanente, vous pourriez combiner celle-ci avec NomFeuille.

Exemple : =MAINTENANT() * 0
retourne toujours zéro.

Du coup :
= SI(MAINTENANT() * 0 ; NomFeuille ; NomFeuille)
permet d'avoir une actualisation automagique.

C'est juste un peu tordu mais ça marche.

Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que la liste reçoive une copie de votre réponse.

Bien cordialement,

Bonjour,
Est-ce que ça pourrait fonctionner en recalculant ?

-----Message d'origine-----

Non, ça ne change pas...... j’avais aussi “calculer automatiquement” en fonction

Christian COTTIGNIES, tel GSM: 0681448878

En faisant F9, ou Ctrl + Maj + F9
tu n'as pas le recalcul ?

Avec Ctrl + Maj + F9 ça marche... pas avec F9 seul....
Merci

Christian COTTIGNIES, tel GSM: 0681448878