UTILISER ET PERSONNALISER UN MODÈLE SOUS GOOGLE SHEETS

 Le but est de créer un modèle (de lettre, facture, devis, etc.) et ensuite de le personnaliser avant de le mettre à disposition (pdf, email).

Vous créez un onglet MODELE dont voici un exemple


Vous créez ensuite un onglet DICTIONNAIRE reprenant les [TERMES] employés (encadrés de [])


Les valeurs peuvent être issues d'une recherche dans une base de données selon un menu déroulant par exemple.

Le script suivant effectuera une copie du modèle en remplaçant les termes employés par les données du dictionnaire.

function onOpen() {
  SpreadsheetApp.getUi().createMenu('⇩ M E N U ⇩')
    .addItem('👉 Copier le modèle et mettre à jour''editer')
    .addToUi();
}
function editer() {
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var mot = {}
  var dico = ss.getSheetByName('DICTIONNAIRE').getDataRange()
  dico.getDisplayValues().slice(1).forEach(x => mot[x[0]] = x[1])
  var f = ss.getSheetByName('COPIE')
  if (f != null) { ss.deleteSheet(f) }
  var f = ss.insertSheet('COPIE')
  var rng = ss.getSheetByName('MODELE').getDataRange()
  rng.copyTo(f.getRange("A1"), SpreadsheetApp.CopyPasteType.PASTE_NORMALfalse)
  rng.copyTo(f.getRange("A1"), SpreadsheetApp.CopyPasteType.PASTE_COLUMN_WIDTHSfalse)
  SpreadsheetApp.flush()
  const requests = Object.entries(mot).map(([kv]) => ({
    findReplace: {
      findk.toString(), replacementv.toString(), matchEntireCellfalsesheetIdf.getSheetId(),
    },
  }));
  Sheets.Spreadsheets.batchUpdate({ requestsrequests }, ss.getId());
}

Il est nécessaire d'activer le service Google Sheets API dans l'éditeur de script. 

Résultat dans l'onglet COPIE


Commentaires

Posts les plus consultés de ce blog

INSÉRER UN TABLEAU PROVENANT D'UNE FEUILLE DANS UN COURRIEL

NAVIGUER AU SEIN D'UN FICHIER À L'AIDE D'UN MENU DÉROULANT

METTRE À DISPOSITION DES INFORMATIONS SANS ACCÈS AU FICHIER COMPLET