ALL Apps Scripts Google Sheets

Google Sheets : Script pour dupliquer rapidement des onglets.

Ecrit par Thierry

Vous est-il arrivé de devoir dupliquer rapidement un grand nombre d’onglets dans Gsheets ?

Suite à la problématique suivante, Gilbert ROINEL vous a préparé un petit script permettant de dupliquer chaque mois 31 onglets avec le n° du jour.

Voici l’animation :

 

Le script est disponible par ici :

function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries =[];
menuEntries.push({name: "1. dupliquer feuille Modèle", functionName: "simpleduplicatesheet"});
menuEntries.push(null);
menuEntries.push({name: "2. supprimer feuilles Numérotées", functionName: "supprimersheet"});
ss.addMenu("🎁menuProf🎁", menuEntries);
}

function simpleduplicatesheet(){
var ss = SpreadsheetApp.getActiveSpreadsheet();

var sheet = ss.getActiveSheet();
if (sheet.getName()==='Modèle'){
  for (var i=1 ;i<=31;i++){
  sheet2 = sheet.copyTo(ss).setName(i);
}
}
 ss.getSheetByName('Modèle').hideSheet();
}

function supprimersheet(){
var classeur = SpreadsheetApp.getActiveSpreadsheet();
var ss = SpreadsheetApp.getActive();
 var nb =  classeur.getNumSheets();
 var  feuilles = classeur.getSheets();
 classeur.getSheetByName('Modèle').showSheet()
  for (var i=1 ;i<nb;i++){
 var sheet= feuilles[i].activate();
if(feuilles[i].getName()=== ss.getSheetByName(i));
{ss.deleteSheet(sheet)};
}
}
Notez cette information
[Total: 0 Average: 0]

A propos de l'auteur

Thierry

Thierry VANOFFE, consultant, formateur, coach G Suite.
Passionné et fasciné par Google, ce blog me permet de partager cette passion et distiller tutos, trucs, astuces, guides sur les outils Google.
N'hésitez pas à me solliciter pour vos formations en ligne ou en présentiel.

7 commentaires

  • Bonjour,

    Je voudrais dupliquer 20 fois un onglet avec des cellules protéger, comment faire pour que mes onglets garde la protection des cellules.

    Merci de votre réponse

    • Bonjour,

      Une solution serait de déprotéger l’onglet au début du script et de remettre la protection au fur et à mesure de chaque onglet créé et en final de protéger le Modèle.

      c’est une solution !!!!

      • Bonjour,

        Merci pour votre réponse.
        Mais j’ai un onglet modèle avec des cellules protéger et je veux dupliquer 20 fois (grâce au script) cet onglets tous en gardant dans chaque onglet créer les mêmes cellules protéger que dans l’onglet modèle.
        Si vous avez une idée ?

  • function multipleduplicatesheet(){
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var nb = Browser.inputBox(‘Entrer le nbre de feuilles de 15 à 20’, Browser.Buttons.OK);
    if ((nb 21)||(isNaN(nb))){ss.toast(‘Vous avez entré ‘+nb+ ‘ Vous devez entrer une valeur entre 28 et 31’, ‘ERREUR’)}else{
    var sheet = ss.getActiveSheet();
    if (sheet.getName()===’Modèle’){
    for (var i=1 ;i<=nb;i++){
    sheet2 = sheet.copyTo(ss).setName(i);
    var protections = sheet.getProtections(SpreadsheetApp.ProtectionType.RANGE);
    for (var pr = 0; pr < protections.length; pr++) {
    var p = protections[pr];
    var rangeNotation = p.getRange().getA1Notation();
    var p2 = sheet2.getRange(rangeNotation).protect();
    p2.setDescription(p.getDescription());
    p2.setWarningOnly(p.isWarningOnly());
    if (!p.isWarningOnly()) {
    p2.removeEditors(p2.getEditors());
    p2.addEditors(p.getEditors());
    }}
    }
    }

    }
    ss.getSheetByName('Modèle').hideSheet();
    }

    • Merci pour votre éclairage, j’ai réussi avec le lien.

      Maintenant je suis bloqué, j’aimerai avoir un icone dans la barre des taches pour pouvoir directement « télécharger au format PDF » sans passer par fichier, télécharger au format, document PDF. (car nous sommes plusieurs à travailler sur ce document et j’aimerai que la dernière personne qui travaille sur le document l’enregistre rapidement en PDF à la fin de la journée)

Laisser un commentaire