Génération automatique de fichiers à partir d'un modèle

Bonjour,

J'ai plusieurs sheets qui sont complètement identiques (contenant les memes formules), à part une donnée, qui pourrait être retrouvée dans une autre sheet.
Je me demandais s'il existait quelque chose comme un template, qui me permettrait de générer automatiquement ces fichiers et de ne modifier que le template quand ça sera nécessaire, plutot que de devoir modifier chacun des fichiers individuellement.

Je ne sais pas si je suis claire... Je ne vois pas trop ce que je pourrais donner comme exemple mais j'y réfléchis :-)

Bonjour,

function dupliquerTemplate(){
// voir ci-après
}

à tester avec ton template. A vrai dire, j'ai retrouvé cela dans mes archives mais je ne l'ai pas re-testé.

Si tu as un fichier-test, je suis preneur. Mets un lien https://www.sheets-pratique.com/fr/cours/partage

ok, je viens de tester, cela fonctionne bien

il eut été plus judicieux d'écrire fichier au lieu de feuille ... quoi que seule la feuille en question est recopiée !

function dupliquerTemplate(){
  var nom = "abcdef"
  var template = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('template')
  var dossier = DriveApp.getFolderById("_________ID__dossier__________")
  var fichier = SpreadsheetApp.create("Copie_Template_" + nom)
  DriveApp.getFileById(fichier.getId()).moveTo(dossier);
  Logger.log(fichier.getId())
  var destination = SpreadsheetApp.openById(fichier.getId());
  template.copyTo(destination);
  destination.deleteSheet(destination.getSheets()[0])
}

Merci pour votre réponse.

C'est merveilleux de me rendre compte que c'est possible.
Mais alors, moi qui pensais me débrouiller en excel, je ne savais pas du tout qu'il était possible de programmer des fonctions...
Je ne vois donc pas ou je pourrais copier ce code pour l'essayer ?
J'essaie de simplifier mon fichier pour pouvoir partager un exemple, mais celui ci contenant beaucoup de formules inter dépendantes, c'est bien compliqué de faire quelque chose de compréhensible.

Bonjour,

Je ne vois donc pas ou je pourrais copier ce code pour l'essayer ?

  • dans google sheets, tu fais Outils > Editeur de script
  • remplace ce qui est proposé par
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  var menu = ui.createMenu('💤 Menu perso 💤');
  var item = menu.addItem('Créer un nouveau fichier','dupliquerTemplate');
  item.addToUi();
}
function dupliquerTemplate(){
  var nom = "abcdef"
  var template = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('template')
  var dossier = DriveApp.getFolderById("_________ID__dossier__________")
  var fichier = SpreadsheetApp.create("Copie_Template_" + nom)
  DriveApp.getFileById(fichier.getId()).moveTo(dossier);
  Logger.log(fichier.getId())
  var destination = SpreadsheetApp.openById(fichier.getId());
  template.copyTo(destination);
  destination.deleteSheet(destination.getSheets()[0])
}
  • tu mets l'ID d'un dossier (que tu crées si besoin dans ton drive), l'ID est la séquence de caractères que tu trouves dans la barre d'adresse de ton navigateur quand tu es sur ton nouveau dossier
  • ensuite, dans l'éditeur de script, tu fais exécuter sur la fonction onOpen, tu auras à donner des autorisations à Google, va jusqu'au bout (3 clics)
  • retourne dans ta feuille, tu as un nouveau menu en haut à droite ...

Tiens, je te donne une copie https://docs.google.com/spreadsheets/d/1xiBTzc5PE_f_1u1GF3eojKqovX8gA2KV4CFOSL7MIJs/edit?usp=sharing

Bonjour,

Merci pur vos réponses. Je n'ai pas eu le temps d'essayer cela. Mais je me demande, avec cette technique, pourrais-je faire une modification dans le template qui modifiera automatiquement les fichiers "enfants" sans écraser les données insérées manuellement dans ceux ci?

Merci beaucoup :-)

Non, une fois le fichier créé, il est indépendant du template.

J'avoue que ceci prête à réflexion ...

  • quels type de modification ? uniquement mise en forme ? ou ajout de nouvelles rubriques ?
  • quel usage ... car dans ton cas il peut y avoir d'autres solutions comme l'emploi d'une form html ...
Rechercher des sujets similaires à "generation automatique fichiers partir modele"