Fonction pour recuperer le nom de la feuille

Bonjour a tous,

je cherche a recuperer le nom de la feuille en cours dans une cellule, et que lorsque l utilisateur change le nom de la feuille, le resultat se mette a jour.

function getNameOfThisSheet() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

function sheetName() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  return sheet.getName();
}

j ai bien trouvé ces 2 fonctions mais le resultat ne se met pas a jour quand je change le nom de la feuille...

merci bien a vous pour votre aide.

Floreli

Bonjour,

Il te faut d'abord installer un trigger par une fonction de ce type

function myTriggerSetup() {
     if(!isTrigger('NouveauNom')) {
       ScriptApp.newTrigger('NouveauNom').forSpreadsheet('1zVneN4NFOZkK-VK0YFqjnWzzYxZrMtmYh_f12oh8A04').onChange().create();  
     }
}

function isTrigger(funcName) {
     var r=false;
     if(funcName) {
       var allTriggers=ScriptApp.getProjectTriggers();
       var allHandlers=[];
       for(var i=0;i<allTriggers.length;i++) {
         allHandlers.push(allTriggers[i].getHandlerFunction());
       }
       if(allHandlers.indexOf(funcName)>-1) {
         r=true;
       }
     }
     return r;
}

ce qui déclenchera la macro

function NouveauNom() {
  var nom = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
  //Browser.msgBox(nom);
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('A1').setValue(nom);
}

Merci pour ta réponse Steelson.

quand je copie ton code juste en adaptant l ID, j ai le code d erreur " You do not have permission to call setValue" pour la derniere ligne du code. Si je comprends bien cette dernière ligne du code c est pour donner a la range A1 la valeur du nom de la feuille.

J ai essayé ensuite en adaptant avec mes formules precedentes, mais le resultat ne s actualise pas quand je change le nom de la feuille (la feuille est bien paramétrée sur recalcule a chaque modif)

Le resulat se met a jour uniquement a chaque sauvegarde sur code.

Merci

J'avoue que c'est un peu déroutant encore pour moi ...

Il faut effectivement avoir accepté les autorisations demandées en exécutant la fonction myTriggerSetup,

Je n'ai pas de rejet pour setvalue

J'ai bien une actualisation, mais à chaque changement d'une cellule quelle qu'elle soit ! Donc ça fonctionne, mais pas comme je voudrais. IL faudrait avec e détecter le type d'évènement.

Il semble qu'il y ait aussi une fonction possible, mais je n'ai pas réussi à la faire fonctionner ...

=REGEXREPLACE(CELL("address",'SHEET NAME'!A1),"'?([^']+)'?!.*","$1")

https://stackoverflow.com/questions/45502538/is-there-a-google-sheets-formula-to-put-the-name-of-the...

Bref je vais poursuivre un peu mes recherches et essais, mais c'est pas encor gagné !

Tu peux éventuellement faire l'inverse : donner à la feuille le contenu d'une cellule, du style (à adapter)

function changeNomFeuille() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var oldName = sheet.getName();
  var newName = sheet.getRange(1,1).getValue();
  if (newName.toString().length>0 && newName !== oldName) {
    sheet.setName(newName);
  }
}

l faut effectivement avoir accepté les autorisations demandées en exécutant la fonction myTriggerSetup,

=> qu est ce que tu entends exactement par autorisations ? il y a un parametrage a faire ? (je suis debut a peine en javascript)

Oui j avais pensé a faire l inverse, prendre le nom de la feuille dans une cellule, sans savoir comment faire. Mais avec cette solution j ai encore un rejet avec setname.

Ensuite j ai essayé pas mal de formules du lien que tu m as envoyé mais quand ca marche, le resultat ne se met jamais a jour. Ou alors j ai un message d analyse de la formule.

je pensais que ca serait aussi simple qu un cellule("nomfichier") sous excel, mais non....

je continue de chercher une solution, je ne désespère pas !!!

Quand tu es dans l'éditeur de script, fais exécuter une fonction, et là il devrait te demander la déclaration des autorisations (moi aussi je découvre, je tâtonne, même si j'en ai joué avec l'agenda et les mails et que je connais le javascript, mais c'est ma première incursion dans les macros de google sheet - le problème est qu'il y a peu de forum pour échanger, même en anglais).

Rechercher des sujets similaires à "fonction recuperer nom feuille"