Créer un fichier pdf automatiquement
p
Bonjour,
Je souhaiterais que sheets cré automatiquement un pdf à partir de ma feuille "DEVIS" lorsque mon document est modifié .
Le nom du pdf devra s'enregistré avec les données des cellules (F5:H6 , B17,C17:D17) en gros ( nom du client ,modele ,immatriculation).
Merci d'avance pour le coup de pouce.
https://docs.google.com/spreadsheets/d/1d9BUZNbSSF4SmmWSk0K6YyaOF02jfO6e30yMjfA_7MQ/edit?usp=sharing
Bonjour,
voici un script à partir duquel tu peux faire ce que tu souhaites, mettre notamment
- l'ID du fichier (fait, à vérifier)
- l'ID de la feuille concernée (fait, à vérifier)
- l'ID du dossier dans lequel il sera enregistré sous ton drive
- le nom du fichier à mettre à jour en fonction de tes critères F5, B17, C17 (fait)
function envoiCopieFeuillePDF() {
DocumentApp.getActiveDocument();
DriveApp.getFiles();
// variables
const doc = SpreadsheetApp.getActive();
const docID = '1d9BUZNbSSF4SmmWSk0K6YyaOF02jfO6e30yMjfA_7MQ';
const feuilleID = '1437553028';
const dossier = DriveApp.getFolderById('__________ID_du_dossier______________');
const d = Utilities.formatDate(new Date(), "GMT+1", "yyyyMMdd")
const f = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('DEVIS')
const fichier = f.getRange('F5').getValue()+' '+f.getRange('B17').getValue()+' '+f.getRange('C17').getValue()+' '+ d + ".pdf"
// Création du fichier pdf
const url = 'https://docs.google.com/spreadsheets/d/' + docID + '/export?';
const exportOptions =
'exportFormat=pdf&format=pdf' +
'&size=A4' +
'&portrait=true' + // orientation portrait, false pour paysage
'&fitw=false' + // pas d'ajustement en largeur
'&sheetnames=false&printtitle=false' + // pas de nom ni de titre à l'impression
'&pagenumbers=false&gridlines=false' + // pas de numérotation, pas de grille
'&fzr=false' + // frozen rows = pas de répétition de l'en-tête
'&gid=' + feuilleID;
var params = {method:"GET",headers:{"authorization":"Bearer "+ ScriptApp.getOAuthToken()}};
var reponse = UrlFetchApp.fetch(url + exportOptions, params).getBlob();
// Sauvegarde du fichier.
dossier.createFile(reponse.setName(fichier));
}