Renommer par "vague" des onglets

Bonjour,

En complément de ma demande précédente, je me suis rendu compte que je ne pouvais pas faire dans la même action dupliquer et renommer des onglets.
j'ai réussi la 1ère partie, à savoir dupliquer mes feuilles.

Maintenant, j'aimerais pouvoir renommer par boucle tous les onglets : pour cela, il faudrait que je puisse activer l'onglet i afin de le renommer mais je ne sis pas comment l'activer (je connais juste la commande
workbook.getWorksheet("Sem36 (2)")

Bonjour,

93 Messages, et pas encore compris qu'il fallait décrire ta configuration Excel ?

Ces renseignements se trouvent dans le menu Fichier > Compte (en bas) + Clic sur le point d'interrogation :

ver2016

Puis page suivante :

ver2016b

Merci de mettre à jour ton profil (Attendu une année 2016, 2021... ou 365 si tu as un abonnement suivi de 32 ou 64 bits le cas échant.

A+

Bonjour,

J'aurais dû le préciser, c'est vrai : c'est corrigé

(re)Bonjour,

Vous pouvez boucler sur la liste des feuilles du fichier, obtenue via workbook.getWorksheets()

Quelque chose comme :

function main(workbook: ExcelScript.Workbook) {
  // Get all the worksheets in the workbook. 
  let sheets = workbook.getWorksheets();

  for (var sheet of sheets) {
  sheet.setName("nom de la feuille"); 
  }
}

Et si je ne veux boucler mais sans prendre en compte une ou plusieurs feuilles (par exemple ne boucler que de la 2ème feuille à la dernière) ?

Il y a plusieurs solutions possibles, le choix dépendant de votre niveau de connaissance des possibilités du typeScript et du nombre de feuilles à éviter.

Dans votre cas, il me semble que vous débutez, le plus simple serait de tester tout simplement le nom de la feuille, et de vérifier si il faut la renommer ou non.

Pour cela deux méthodes :

Ou bien vous vérifiez directement le nom de la feuille, avec getName et ===, mais il faut le nom complet et un test/feuille.

Ou bien les feuilles à éviter ont un nom avec par exemple un préfixe toujours identique (de manière générale un mot identifiable), par exemple "INTERFACE-blablabla", "INTERFACE-blabla2", etc., et dans ce cas vous pouvez utiliser l'opérateur .includes pour faire la vérification.

Ci-après un exemple, pour lequel j'implémente les deux méthodes afin d'éviter la feuille nommée "ne pas toucher" et toutes les feuilles contenant "ABC-" dans leur nom :

L'instruction continue permet de "sauter" la boucle et passer à l'étape suivante.

function main(workbook: ExcelScript.Workbook) {
  // Get all the worksheets in the workbook. 
  let sheets = workbook.getWorksheets();

  for (var sheet of sheets) {
    // verification 1
    if (sheet.getName() === 'ne pas toucher') {
        continue;
    // verification 2
    } else if (sheet.getName().includes('ABC-') {
         continue;
    }

  // renommage 
  sheet.setName('nom de la feuille'); 
  }
}

Super, merci pour ton aide : j'ai bien réussi.

Rechercher des sujets similaires à "renommer vague onglets"