Script Google sheet : renommer feuilles de calcul

nlbmoi Messages postés 434 Date d'inscription   Statut Membre Dernière intervention   -  
nlbmoi Messages postés 434 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

Ma feuille de calcul Google Sheet comporte en première feuille de calcul des données : en particulier, la 1ère colonne contient les noms des feuilles de calcul que j'aimerais créer. Comme je ne sais pas, à priori, combien de feuilles j'ai besoin, je crée autant de feuilles que j'ai de données dans ma colonne A puis je souhaite renommer ces feuilles selon les données indiquées dans la colonne A.

Mon fichier : https://docs.google.com/spreadsheets/d/1s5lR5SRusy76uKkMqwRRbMvavb6JpX2sMhd5-sR2nyw/edit?usp=sharing

initialement, je dispose de 4 feuilles : donnees, feuille 1, feuille 2, feuille 3.

Après le script, je devrais avoir 9 feuilles : donnes, feuille 1, feuille 2, feuille 3, feuilleA2, feuilleA3, feuilleA4, feuilleA5 et feuilleA6.

Avec le script ci-dessous :

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var feuille = ss.getSheets();
  var startRow = '1'; // ligne départ = 1, modifiable si besoin
  var valColonneA = sheet.getRange("A1:A").getValues(); 
  var lignesColonneA = valColonneA.filter(String).length+1; 
  sheet.getRange(lignesColonneA, 1).activate(); // activer dans la colonne A la dernière cellule non vide
  

for (var i=0;i<lignesColonneA;i++){
  var name='DerniereFeuille'&i;
  ss.insertSheet(name);
}
  var nouveaunom;
  for (var i=1; i<lignesColonneA; i++){
    nouveaunom = feuille[0].getRange(i,1).getValue();
    feuille[i].setName(nouveaunom)
  }
}

j'ai les soucis suivants :

- le nouveau nom des feuilles n'est pas derniereFeuille accompagnée d'un chiffre mais uniquement Feuille suivie d'un nombre (qui n'a d'ailleurs rien à voir avec la valeur de i)

- seules les feuilles situées après l'onglet donnees (donc dans le cas de mon fichier feuille1, feuille2 et feuille3) sont impactées par le changement de nom or justement je ne veux pas que celles-ci changent

Je suis loin d'être un expert en javascript et je bute sur les solutions pour obtenir ce que j'attends : quelqu'un pourrait-il m'aider ?

merci d'avance
Windows / Firefox 103.0

A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

Bonjour,

La concaténation en js se fait avec le signe + et non pas &


0
nlbmoi Messages postés 434 Date d'inscription   Statut Membre Dernière intervention   24
 

merci : désormais  les feuilles sont bien créées à la suite de la feuille donnees ce qui me convient tout à fait !

Pour le reste, puisque j'ai créé mes  feuilles, j'ai alors les feuilles suivants donnees, derniereFeuille0, derniereFeuille1, derniereFeuille2, derniereFeuille3, derniereFeuille4, derniereFeuille5, feuille1, feuille2, feuille3.

Normalement, lorsque je fais la boucle for de la ligne 16, puisque je commence à i=1, je devrais renommer les feuilles nommées derniereFeuille0, derniereFeuille1, ... et non pas les feuilles feuille1, feuille2, feuille3.

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > nlbmoi Messages postés 434 Date d'inscription   Statut Membre Dernière intervention  
 

Tu devrais te baser  sur le nom des feuilles au lieu de leur "indice".

Il te suffit de vérifier si le nom de la feuille qui va être renommée est égale au nom d'une feuille que tu ne veux pas renommer... et si c'est le cas, passer à la suivante.

0
nlbmoi Messages postés 434 Date d'inscription   Statut Membre Dernière intervention   24 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 

je ne comprends pas ta méthode

0