Trouver le nom de la feuille

Bonjour.
Dans LO 7.3.7.2, j’ai besoin dans une formule de trouver le nom de la feuille courante. Il semblerait que la fonction n’existe pas, mais quand je tente d’utiliser la fonction-utilisateur ci-dessous* ça ne marche pas, ou si je traduis Sheets par feuille la fonction retourne le nom de la dernière feuille du classeur.
Vous avez une idée ? Sinon y a-t-il une option dans LO pour accepter la syntaxe anglaise des formules pour rendre les classeurs language-agnostic pour améliorer la compatibilité des fichiers à travers les pays ?

Merci d’avance

=SHEETNAME(SHEET()) will then return the name of the current sheet.

This was supposed to be “global” help site using English. How did you post your question? I got it shown using the English branch. (I never visit French sites.)

  1. Le nom de la fonction SHEET() en Français actuellement est FEUILLE().
  2. La fonction “SheetName” définie par l’utilisateur doit être placée comme “macro” dans votre bibliothèque “Standard”.
  3. BASIC est pas “localisé”.
  4. Utilisez =SHEETNAME(FEUILLE())
  5. Préférez les noms de fonctions en Anglais.
  6. See attached example. It also shows how you can switch to English function names.
    disask98793SheetnameFunction_SansNom1.ods (91.5 KB)
  7. If you think you need a function not existing in Calc by default, always tell the reasons. Other users seem to NOT need it. There may be a solution not relying on user code. (See XY-problem.)

Hi Lupp
I wanted to ask the question below your own reply in the linked post above. Then I created an account but was not allowed to post as a level 0 user. So I deleted the account at thedocumentfoundation .org. After searching a bit I found I had an account at http://fr.libreofficeforum.org stored in my FF profile which I used to access help (because of dead link, I had to search the web engine with libreoffice, clicked https:// fr.libreoffice. org/ then AIDE > Poser une question et retour d’expérience then Poser une question then I fell here… already logged in a all french view and … able to post !!! with the account I just deleted some minutes ago !!! ).

Thank for your help

About your 7th point : here is my use case
I have a list in the “All” sheet with a row filled with the name of my music exercise books. This is the very sheet I will update with new entries.
I want to create other sheets (manually already done), one per book, named along with the book’s name.
In each of these secondary sheets, there will be only entries for the related book (found from the “All” with RECHERCHEV function) in 2 different tables, one sorted by artist, the second by song title.
This is to easily print only the book’s content table for the last entry in the “All” sheet everytime I add a new entry.

PS : ATM at the time of posting I got an error message stating new users can post only 2 links in a post. It seems my account @tdf was not deleted …yet? I had to redact links (Poser une question et retour d’expérience etc…)

Too many open ends.
Just in short: I still don’t feel sure to understand what you try.
If you have an ‘All’ sheet containing all the entries, this is a good idea, but for what do you then need all the other sheets, and for what do you need the SheetName functionality?
Isn’t this a task for filtering and sorting?

Bonjour Bro, le forum

Testez la formule suivante :

=DROITE(CELLULE("filename");SOMME(NBCAR(CELLULE("filename"));-TROUVE("'#";CELLULE("filename"));-2))

:wink:

Merci @njhub, la classe :+1:

Boujour Bro.

Je suppose que vous avez besoin d’une formule qui renvoie le nom d’une feuille nommée CIBLE et, surtout, que le nom renvoyé soit automatiquement mis à jour si on modifie le nom CIBLE en CIBLENEW par exemple.

La solution donnée par njhub a un petit inconvénient. Si vous changez le nom de la feuille, la mise à jour n’est pas immédiate, c’est du moins ce que j’ai constaté en la testant. Il faut sauver le classeur, le fermer puis le rouvrir pour avoir la mise à jour.

Il existe une autre solution, débarrassée de cet inconvénient :

  1. Dans une cellule libre d’une feuille quelconque, encoder =CIBLE.A1 (A1 ou n’importe quel nom de cellule, c’est sans importance). Supposons que =CIBLE.A1 a été placé dans la cellule AUTRE.C8.

  2. Alors la formule STXT(FORMULE(AUTRE.C8);2;NBCAR(FORMULE(AUTRE.C8))-4) renvoie CIBLE ou CIBLENEW si la feuille a été ainsi renommée.

Bonjour,

@njhub
Votre formule exprimée avec la fonction LET (disponible depuis la version 24.8 de LibreOffice) — peut-être plus facile à comprendre. :wink:

=LET(fn;CELLULE("filename");DROITE(fn;NBCAR(fn)-TROUVE("'#";fn)-2))  

Testez une formule plus courte :

=REGEX(CELLULE("filename");"[^#]+#\$";"")

C’est tdf#85986 (“CELL() Function does not re-evaluate a change in sheet name.”)

Ou utiliser les autres suggestions/ contournements fournies dans tdf#85986 et ses doublons (tdf#117459, tdf#121422 et tdf#154852) :

  • la mise à jour sans sauver-rouvrir : recalculer sans condition (DonnéesCalculerRecalculer sans condition)
  • la mise à jour immédiate : ajouter à la formule de base : &GAUCHE(0*ALEA();0) ou &T(MAINTENANT())