Bonjour à tous,
J'ai fait appel à vos services il y a quelques temps pour le développement d'un script qui fonctionne parfaitement. Il fonctionne tellement bien qu'on souhaiterait pouvoir l'utiliser sur nos téléphones/tablettes.
J'ai donc ce script :
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu("Enregistrer PDF");
menu.addItem("Enregistrer le PDF ↓ ","savePDF");
menu.addToUi();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var shMap = ss.getSheetByName('Fiche journalière')
shMap.getRange('C4:C6').clearContent()
shMap.getRange('H5:I7').clearContent()
shMap.getRange('H11:I11').clearContent()
shMap.getRange('C12:C17').clearContent()
Browser.msgBox('Hello ! Fichier prêt, tu peux remplir')
}
function savePDF()
{
// SÉLECTIONNER LA FEUILLE A SAUVEGARDER
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
//URL de SS ?
var ssUrl = ss.getUrl();
var sheetId= sheet.getSheetId();
var url = ssUrl.replace(/\/edit.*$/,'')
+ '/export?exportformat=pdf&format=pdf'
+ '&size=LETTER'
+ '&portrait=true'
+ '&fitw=true'
+ '&top_margin=0.50'
+ '&bottom_margin=0.50'
+ '&left_margin=0.50'
+ '&right_margin=0.50'
+ '&sheetnames=false'
+ '&printtitle=false'
+ '&pagenum=false'
+ '&gridlines=false'
+ '&fzr=FALSE'
+ '&gid='+sheetId;
// RÉCOLTER LES INFORMATIONS DANS LE SHEET POUR COMPOSER LE NOM DU DOCUMENT
var docId = sheet.getRange('B2').getValue();
var docDate = sheet.getRange('C4').getValue();
//mise en forme de la date : annee-mois-jour
var docDateYYMMJJ = (docDate.getFullYear()+"-"+(docDate.getMonth()+1)+"-"+(docDate.getDate()+1));
// Concaténons le tout
var docName = docId+"_"+docDateYYMMJJ ;
// CRÉER LE PDF A PARTIR DE L'URL
var token = ScriptApp.getOAuthToken();
var docurl = UrlFetchApp.fetch(url, { headers: { 'Authorization': 'Bearer ' + token } });
var pdf = docurl.getAs('application/pdf').setName(docName);
var file = DriveApp.createFile(pdf);
// DEPLACER LE PDF DANS LE BON DOSSIER
/*
ATTENTION IL FAUT ADAPTER LE CODE AVEC L'ID DU FOLDER DE DESTINATION
*/
var finalFile = file.moveTo(folder);
//RÉCUPÉRER LE LIEN
var docUrl = finalFile.getUrl();
//ajouter l'urL dans la GED.
var sheetGed = ss.getSheetByName('GED');
sheetGed.appendRow([new Date(),docId,docUrl,docName]);
// ANNONCER LA RÉUSSITE DE CRÉATION DU DOCUMENT
var ui = SpreadsheetApp.getUi();
ui.alert('Well done\n\nLe devis '+ docId +' a bien été créé\nIl porte le nom : '+docName+'\n\nLe lien a été ajouté dans la GED.');
}
Et j'ai testé de lui appliquer une fonction complémentaire, qui semblerait-il, puisse utiliser les scripts en mode mobile.
Function onEdit(e)
{
if(SpreadsheetApp.getActiveRange().getA1Notation()=="E4"&&SpreadsheetApp.getActiveRange().getValue()){
SpreadsheetApp.getActiveRange().setValue(false)
function savePDF()
}
Malheureusement, c'est pour le moment un échec.
Quelqu'un aurait-il une idée ?
Merci :) :)
juju