[Sheets] Création de PDF en automatique lié à une liste déroulante

Encore moi...

var doc = SpreadsheetApp.getActive();
var feuille = SpreadsheetApp.getActive();
var data = doc.getSheetByName("Mat_A").getRange("B9:B59").getValues();

for (var i = 0; i < data.length; i++) {
feuille.getRange('A8').setValue(data[i]);
// faire appel à la fonction pdf
Get FeuillePDF();

ça ne fonctionne pas... j'ai ma liste de B9:B59 dans la feuille Mat_A

Et ma cellule en A8 dans la feuille "Passeport" ==> cellule que je veux faire évoluer en fonction de la plage B9:B59 (ça lit les valeurs 1 à 1 et j'enregistre en pdf en appelant la fonction FeuillePDF...

J'y suis presque !!! Merci pour ton aide :)

Qu'est-ce qui ne va pas a priori, quelle est l'erreur ?

Si tu enlèves Get FeuillePDF(); est-ce que A8 défile ?

Remplace par

Utilities.sleep(200);

et regarde si ce point est ok.

Après on regardera côté fonction ! Cette tempo sera peut-être aussi utile !

Je pense que le script ne donne pas la main à la feuille tant qu'il n'a pas terminé ! pfttt

Donc seule la dernière valeur de la liste est prise en compte.

Peut-être un début de solution .... https://stackoverflow.com/questions/12711072/how-to-pause-app-scripts-until-spreadsheet-finishes-cal...

Oui exactement, j'ai que la valeur de la dernière cellule, tu as raison.

C'est le binse, sheet pour coder...

Ouf, après maintes lectures et questions posées en langue de Shakespeare je pense avoir trouvé la solution

    SpreadsheetApp.flush(); // permet une mise à jour de la feuille
    Utilities.sleep(200);

à ajouter avant l'appel à la fonction d'édition (je ne sais pas si le sleep est réellement utile ou pas et quelle serait la valeur en millisecondes)

ça marche !!!! youhou !!!

J'essaye lundi dans les conditions réelles (au boulot) !! Merci :)

Top, je te tiens au courant !!

Bonne soirée et bon weekend !!

Hello,

J'ai une erreur lorsque j'appelle ma fonction PDF...

ça ne fonctionne pas :

image

function parcourir() {

// var spreadsheet = SpreadsheetApp.getActive();
// spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Matrice Quart A'), true);
// var data = feuille.getRange('Liste_effectif_quart_A').getValues();

var doc = SpreadsheetApp.getActive();
var feuille = SpreadsheetApp.getActive();
var data = doc.getSheetByName("Matrice Quart A").getRange("B9:B59").getValues();

for (var i = 0; i < data.length; i++) {
feuille.getRange('A8').setValue(data[i]);

SpreadsheetApp.flush(); // permet une mise à jour de la feuille
Utilities.sleep(2000);

// faire appel à la fonction pdf
Get Feuille_PDF

}
};

Tu sais ce qui pourrait clocher ?

Silentman ;)

La ligne 18, c'est laquelle ?

Est-ce que cela fonctionnait chez toi ?

L'appel à la fonction doit se faire comme suit

Feuille_PDF();
  • ne pas omettre () et le ;
  • ne pas utiliser call

Bonjour

je viens aux nouvelles ...

Rechercher des sujets similaires à "sheets creation pdf automatique lie liste deroulante"