function onOpen() {
var ui = SpreadsheetApp.getUi();
// Ajoute un menu personnalisé
ui.createMenu('Mon Menu')
.addItem('Je crée mon devis', 'createQuote')
.addToUi();
}
function createQuote() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var feuille = spreadsheet.getActiveSheet();
var lastRow = feuille.getLastRow();
var range = feuille.getRange(lastRow, 1, 1, 5);
// Récupérer les données de la dernière ligne
var data = range.getValues()[0];
// Ajouter la date du jour dans la colonne D
var dateDuJour = new Date(); // Obtenir la date actuelle
feuille.getRange(lastRow, 4).setValue(dateDuJour); // Insérer la date dans la colonne D
// Nom du dossier à créer (utiliser le nom de la colonne C comme nom de dossier)
var nomDossier = data[2]; // Colonne C
// Récupérer le dossier parent du fichier Google Sheets
var fichier = DriveApp.getFileById(spreadsheet.getId());
var dossierParent = fichier.getParents().next();
// Créer le dossier s'il n'existe pas déjà dans le dossier parent du fichier Google Sheets
var dossier;
var dossiers = dossierParent.getFoldersByName(nomDossier);
if (dossiers.hasNext()) {
dossier = dossiers.next();
} else {
dossier = dossierParent.createFolder(nomDossier);
}
// ID du modèle Google Docs
var templateId = '1GCHwUg8TTly3Q4Ncq7O2Z4qN4OHqm8Nj6BBzF6iWPr0'; // ID de votre modèle
// Obtenir le modèle Google Docs
var templateFile = DriveApp.getFileById(templateId);
// Nom du nouveau document (utiliser la valeur de la colonne E comme nom)
var nouveauDocNom = data[4]; // Colonne E
// Créer une copie du modèle Google Docs dans le dossier spécifié avec le nom spécifié
var newDoc = templateFile.makeCopy(nouveauDocNom, dossier);
var newDocId = newDoc.getId();
// Ouvrir le nouveau document
var doc = DocumentApp.openById(newDocId);
var body = doc.getBody();
// Remplacer les mots-clés dans le document avec les données de la ligne sélectionnée
body.replaceText('{ID Quote}', data[0]); // Remplacez {ID Quote} par le mot-clé dans votre document pour la colonne A
body.replaceText('{ID Client}', data[1]); // Remplacez {ID Client} par le mot-clé dans votre document pour la colonne B
body.replaceText('{NAME}', data[2]); // Remplacez {NAME} par le mot-clé dans votre document pour la colonne C
// Obtenir le nom du nouveau document sans espaces pour le lien hypertexte
var nouveauDocNomSansEspaces = nouveauDocNom.replace(/\s+/g, '_');
// Insérer un lien hypertexte vers le nouveau document dans la colonne E avec le nom du document comme texte du lien
feuille.getRange(lastRow, 5).setFormula('=HYPERLINK("' + doc.getUrl() + '", "' + nouveauDocNomSansEspaces + '")');
}