Renommer des feuilles google sheet

Bonjour

je cherche dans google sheet à créer des feuilles depuis une plage A2:A d'une autre feuille contenue dans le même classeur .

pensez vous que c'est possible ?

apres quelques recherche sur gogole je seche complet.

merci pour vos reponses

Bonjour,

function creerOnglets(){
  var doc = SpreadsheetApp.getActiveSpreadsheet()
  var f = doc.getActiveSheet()
  for (var i=2;i<=f.getLastRow();i++){
    if (f.getRange('A'+i).getValue()!=''){
      nouveau = doc.insertSheet();
      nouveau.setName(f.getRange('A'+i).getValue());
    }
  }
}

Bonjour

Merci pour votre réponse très rapide

pour compléter :

Dans la feuille "sites" A2:A se trouve la liste des noms des onglets à créer , en suivant le modèle de la feuille "VIERGE SITE".

encore merci

Il y a donc un modèle à dupliquer ? pas de problème !

Mets un lien vers un fichier simplifié. Merci.

à mon avis, réduis bien le nombre de lignes de chaque feuille, sinon tu dépasses la capacité

et puis il y a aussi une question de temps d'exécution

cela ne peut pas fonctionner non plus si tu as 2 fois le même nom, comme PR IZARBEL |928245|

il y en a peut-être d'autres !

je me demande comment tu vas naviguer entre ces onglets !

function creerOnglets() {
  var doc = SpreadsheetApp.getActiveSpreadsheet()
  var f = doc.getSheetByName('SITES')
  var rng = doc.getSheetByName('VIERGE SITE').getDataRange()
  for (var i = 2; i <= f.getLastRow(); i++) {
    nouveau = doc.insertSheet();
    nouveau.setName(f.getRange('A' + i).getValue());
    nouveau.deleteRows(100,900)
    rng.copyTo(nouveau.getRange("A1"), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false)
    rng.copyTo(nouveau.getRange("A1"), SpreadsheetApp.CopyPasteType.PASTE_COLUMN_WIDTHS, false)
  }
}
function delOnglets() {
  var doc = SpreadsheetApp.getActiveSpreadsheet()
  doc.getSheets().forEach(function (f, i) { if (i>1) doc.deleteSheet(f) })
}

quand je vois la quantité d'onglets, je me dis que ce n'est peut-être pas la meilleure solution

je privilégierais plutôt le fait de faire une seul et unique onglet et ensuite de filtres ou vues filtrées

je ne sais pas non plus ce que tu veux faire de ces infos, mais n'oublie pas qu'il existe aussi google form pour introduire des données

bonjour

la créations d'onglet fonctionne parfaitement. C'est énorme !!

mon but et de créer une feuille par équipement et avec la fonction "importrange" d'y coller tous les bon de commande affairant a celui-ci.

je vais ensuite "a la Mano créer un lien html vers cette feuille pour la coller dans un logiciel de gmao .

pense tu possible de mettre le nom de la feuille ainsi crée dans la cellule A1 de la feuille?

comme ceci

function nomOnglets() {
  var doc = SpreadsheetApp.getActiveSpreadsheet()
  doc.getSheets().forEach(function (f, i) { if (i>1) 
   f.getRange('A1').setValue(f.getName())
  })
}

bon courage avec importrange vu le nombre d'onglets ! encore une fois j'aurais privilégié plutôt le fait de faire une seul et unique onglet et ensuite de filtres

Bonjour et encore merci.

je vais suivre tes recommandations et scinder mon fichier en plusieurs classeurs suivant les types d'équipements.

en résumé :

-la création d'onglets fonctionne. merci Steelson

-le renommage des onglets fonctionne. merci Steelson

-l'importrange des données fonctionne. merci Steelson

Etant très novice peux tu me dire si il est possible de regrouper les scripts (création onglet + renommage onglets ) sur un seul script.

je voudrais aussi récupérer le lien html de chaque feuille et le positionner en cellule A2 ;-).

merci

Bonjour

function creerOnglets() {
  var doc = SpreadsheetApp.getActiveSpreadsheet()
  var f = doc.getSheetByName('SITES')
  var rng = doc.getSheetByName('VIERGE SITE').getDataRange()
  for (var i = 2; i < f.getLastRow(); i++) {
    nouveau = doc.insertSheet();
    nouveau.setName(f.getRange('A' + i).getValue());
    nouveau.deleteRows(100, 900)
    rng.copyTo(nouveau.getRange("A1"), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false)
    rng.copyTo(nouveau.getRange("A1"), SpreadsheetApp.CopyPasteType.PASTE_COLUMN_WIDTHS, false)
    nouveau.getRange('A1').setValue(nouveau.getName())
    f.getRange('B' + i).setFormula(`=iferror(hyperlink("#gid=${nouveau.getSheetId()}range=A2"; "lien vers ${nouveau.getName()}"))`)
  }
}

je suis sur le cul !!!

good job Steelson merci tu mérite bien le "fanatic d'excel"

good job Steelson merci tu mérite bien le "fanatic d'excel"

d'excel ??

Rechercher des sujets similaires à "renommer feuilles google sheet"