Numeriblog Google Workspace Google Sheets, le tableur surpuissant Google Sheets : Script pour dupliquer rapidement des onglets.

Google Sheets : Script pour dupliquer rapidement des onglets.

Google Sheets est l’outil de tabulation de la suite bureautique Google Workspace. C’est le concurrent direct de Microsoft Excel. Il s’agit à proprement parlé de la version gratuite d’Excel. Google Sheets est une application qui […]

5(1)
personnes ont consulté cet article

1 minute

Rédigé par Thierry Vanoffe - il y a 6 ans

Google Sheets : Script pour dupliquer rapidement des onglets.

Google Sheets est l’outil de tabulation de la suite bureautique Google Workspace. C’est le concurrent direct de Microsoft Excel. Il s’agit à proprement parlé de la version gratuite d’Excel. Google Sheets est une application qui vous permettra de travailler à plusieurs sur une feuille de calcul et sur un même document.  Un vrai travail collaboratif est possible grâce à ce tableur Google. Comme nous le savons,  collaborer est la base de la réussite dans un environnement de développement ou dans la vie professionnelle. Cette application Google vous permettra d’automatiser une plage de cellules, de mettre en forme des tableaux très rapidement, de créer une liste déroulante, des diagrammes ou encore de copier-coller des valeurs dans un logiciel de traitement de texte comme Google Docs. Mais saviez-vous que vous pouvez également dupliquer des onglets pour gagner du temps ?  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 un tutoriel sous forme d’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)};
}
}

Voilà, désormais vous connaissez le script qui permet de dupliquer des onglets sur un document Google Sheets. Nous espérons que ce tuto vous aura plu même si côté développeurs, nous ne doutons pas que cela va vous aider. Avec Javascript, le CSS et maintenant ça, vous avez beaucoup de flèches à votre arc. Maintenant, cela sera à vous d’utiliser cette formule à bon escient sur vos feuilles de calcul. Nous vous souhaitons à bientôt sur Numeriblog pour d’autres tutoriels et surtout prenez du plaisir avec les services Google !

Besoin d'un peu plus d'aide sur Sheets ?

Des formateurs sont disponibles toute l'année pour vous accompagner et optimiser votre utilisation de Sheets, que ce soit pour votre entreprise ou pour vos besoins personnels !

Découvrir nos formations Sheets

Rédacteur

Photo de profil de l'auteur
Thierry Vanoffe

Thierry VANOFFE, consultant, formateur, coach Google Workspace CEO de Numericoach, leader de la formation Google Workspace en France. Passionné 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 projets de formation.

S’abonner
Notification pour
guest

5

Note du cours

(1)

(0)

(0)

(0)

(0)

11 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Sébastien KUSZNIER (GPOINT)

Merci Thierry, j’ai galéré avec ça la semaine dernière pour dupliquer sur 12 mois et je me suis demandé pourquoi cette fonctionnalité n’était pas native.
Bref au passage encore un grand merci pour cette info et toutes les autres!

Cet avis vous a été utile ?

sebastien
sebastien

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

Cet avis vous a été utile ?

Gilbert
Répondre à  sebastien
5 années il y a

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 !!!!

Cet avis vous a été utile ?

sebastien
sebastien
Répondre à  Gilbert
5 années il y a

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 ?

Cet avis vous a été utile ?

Gilbert

Bonjour,
il faut ajouter quelques lignes de script pour effectuer la recopie des protections
voir ceci
https://webapps.stackexchange.com/questions/86984/in-google-sheets-how-do-i-duplicate-a-sheet-along-with-its-permission/87000#87000

Cet avis vous a été utile ?

Gilbert

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();
}

Cet avis vous a été utile ?

sebastien
sebastien
Répondre à  Gilbert
5 années il y a

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)

Cet avis vous a été utile ?

alcapone
alcapone

bonjour,
je me permet de vous contacter parceque je suis bloqué avec une conversion d’un code vba en script google sheet voici mon code vba :
Dim j As Integer
Dim LastRow As Integer
Dim DerniereLigne As Integer
Sub ventilation()
Application.ScreenUpdating = False
‘boucle permettant de lire toutes les feuilles du classeur
For j = 7 To 20
Sheets(j).Select
LastRow = Range(« A1000000 »).End(xlUp).Row
For i = LastRow To 4 Step -1 ‘parcourir les lignes en remontant vers le haut
Sheets(j).Select
Rows(i).Select
Selection.Delete shift:=xlUp
Next i
Sheets(« source »).Select
DerniereLigne = Range(« A1000000 »).End(xlUp).Row
For k = 4 To DerniereLigne
Sheets(« source »).Select
If Sheets(j).Name = Cells(k, 5).Value Then
Rows(k).Select
Selection.Copy
Sheets(j).Select
LastRow = Range(« A1000000 »).End(xlUp).Row + 1
Cells(LastRow, 1).Select
ActiveSheet.Paste
End If
Next k
Next j
Sheets(« Matin »).Select
Application.CutCopyMode = False
Application.ScreenUpdating = True
MsgBox « la ventilation est terminée… », vbOKOnly + vbInformation, « Information »
End Sub
merci par avance

Cet avis vous a été utile ?

Lionel

Bonjour
Bravo pour votre blog.
Je cherche à dupliquer une feuille en conservant les « plages protégées ». Quand je duplique une page, les plages ne sont plus protégées. Savez vous comment faire ?
Merci bcp
Lionel

Cet avis vous a été utile ?

Clément Darcheville
Clément Darcheville
Répondre à  Lionel
2 années il y a

Bonjour,
Je suis dans le même cas que vous.
Avez-vous trouvé une solution depuis lors?
Merci

Cet avis vous a été utile ?

Votre note :
     

Bonjour,

Je recherche un script qui permettrait d’incrément une cellule à chaque duplication d’onglet. Pour gérer des factures par exemple, le numéro de facture serait incrémenter de « 1 » à chaque nouvel onglet.
Merci pour votre aide si vous avez une solution 😉

Cet avis vous a été utile ?