Créer une copie de document et l'ouvrir

Bonjour,

J'ai créé un document Google Sheets, que j'appellerai "Devis", qui va servir de "modèle".

Sur mon site web, je mets un lien (bouton) vers ce document, qui au clic a pour but de créer une copie du Devis original et d'ouvrir cette copie dans une nouvelle fenêtre (ou nouvel onglet). Cela passe donc par un script qui crée cette copie de "Devis" et l'ouvre.

N'y connaissant pas grand chose en programmation, j'ai récupéré et ajusté des bouts de code, et cela fonctionne presque :

Au clic sur le bouton de mon site web, cela ouvre une page html avec un bouton qui, lui, crée la copie de mon document et l'ouvre.

Cela n'est pas idéal, car 1) la page html est inutile d'un point de vue utilisateur, 2) elle n'est pas du tout sexy, 3) les temps de réponse sont très (trop longs).

J'aimerais donc ajuster mon code pour :

- Idéalement : créer à copie directement sans passer par cette page html

- Si cela n'est pas possible, faire en sorte que la page html soit juste une redirection (de façon à ce que l'utilisateur n'ait pas à cliquer sur le bouton de la page html)

- Si cela n'est pas possible, afficher une boîte de dialogue au clic sur le bouton de la page html pour informer "chargement en cours" (car actuellement il faut compter 5 secondes après le clic bouton page html avant qu'il se passe quelque chose de façon visible pour l'utilisateur)

Voici mon code actuel (qui mérite sans doute une optimisation) :

Code GS :

"function doGet(e) { return HtmlService.createHtmlOutputFromFile('page');}
function fctOpenForm(idForm){

// fonction qui va faire une copie du formulaire pour ensuite l'ouvrir (on préserve ainsi l'original)

// 1 - on va chercher en fonction de l'id du formulaire le répertoire où il doit être copié

// 1.1 - on "ouvre" le fichier de configuration var ssConfigId="[mon fichier]";

var ssConfig=SpreadsheetApp.openById(ssConfigId);

var idForm ="[id de mon fichier]";

// 1.3 - on cherche l'id du répertoire de destination de la copie

var idRepDest="[id de mon dossier de destination]";

// 1.4 - on cherche le nom du formulaire var nomForm="Devis";

// 2 - on copie le formulaire var folderDest=DriveApp.getFolderById(idRepDest);

var newForm=DriveApp.getFileById(idForm).makeCopy("Nouveau"+nomForm,folderDest);

var newFormId=newForm.getId();

return newForm.getUrl()
}
"

Code html (page):

"<!DOCTYPE html><html> <body onload='fctOpenFile()'>

<h1>mon titre</h1>

<button value="[id de mon fichier]" onclick="fctGo(this)">Démarrer mon devis</button>

</body>

<script>

function fctGo(element){

var idForm=element.value;

google.script.run.withSuccessHandler(fctOpenByUrl).fctOpenForm(idForm);

}

function fctOpenByUrl(url){

window.open(url);

}

</script>

</html>

"

URL publique pour lancer le script :

"script.google.com

/macros/s/AKfycby_rPcNP_dT92V3_EkTtB-MCDHpXT8ahvY3gzTnBMmxaFcP1yHReFcmFoj_0WvrGKQL/exec"

Pouvez-vous m'aider svp ?

Merci d'avance !

Kano

Rechercher des sujets similaires à "creer copie document ouvrir"