Bonjour,
J'ai besoin de votre aide car après plusieurs recherches et tests, je n'arrive pas à faire ce que je veux ...

J'ai un classeur avec 50 feuilles, chacune correspond à une personne dont l'adresse mail est inscrite dans une cellule. Je veux envoyer par mail chaque feuille à chaque personne.

J'ai trouvé un script qui marche bien mais qui travaille sur la feuille active uniquement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
function emailSpreadsheetAsPDF() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 1; // First row of data to process
  var numRows = 2; // Number of rows to process
  // Fetch the range of cells A2:B3
  var dataRange = sheet.getRange(startRow, 1, numRows, 2);
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (var i in data) {
    var row = data[i];
    var email = row[0]; // First column
    var nom = row[1];
  }
  var ss = SpreadsheetApp.getActiveSpreadsheet();
 
  var subject = "PDF généré depuis la feuille " + nom; //+ ss.getName(); 
  var body = "Voici votre fichier en pièce jointe";
 
  // Base URL
  var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", ss.getId());
 
  var url_ext = 'exportFormat=pdf&format=pdf'        // export as pdf / csv / xls / xlsx
  + '&size=letter'                       // paper size legal / letter / A4
  + '&portrait=false'                    // orientation, false for landscape
  + '&fitw=true&source=labnol'           // fit to page width, false for actual size
  + '&sheetnames=false&printtitle=false' // hide optional headers and footers
  + '&pagenumbers=false&gridlines=false' // hide page numbers and gridlines
  + '&fzr=false'                         // do not repeat row headers (frozen rows) on each page
  + '&gid=';                             // the sheet's Id
 
  var token = ScriptApp.getOAuthToken();
  var sheets = ss.getSheets(); 
 
  //make an empty array to hold your fetched blobs  
  var blobs = [];
 
  for (var i=0; i<sheets.length; i++) {
 
    // Convert individual worksheets to PDF
    var response = UrlFetchApp.fetch(url + url_ext + sheets[i].getSheetId(), {
      headers: {
        'Authorization': 'Bearer ' +  token
      }
    });
 
    //convert the response to a blob and store in our array
    blobs[i] = response.getBlob().setName(sheets[i].getName() + '.pdf');
 
  }
 
  //create new blob that is a zip file containing our blob array
  //  var zipBlob = Utilities.zip(blobs).setName(ss.getName() + '.zip'); 
   var zipBlob = blobs[0];
 
  //optional: save the file to the root folder of Google Drive
  DriveApp.createFile(zipBlob);
 
  // Define the scope
  Logger.log("Storage Space used: " + DriveApp.getStorageUsed());
 
  // If allowed to send emails, send the email with the PDF attachment
  if (MailApp.getRemainingDailyQuota() > 0) 
    GmailApp.sendEmail(email, subject, body, {
      htmlBody: body,
      attachments:[zipBlob]     
    });  
}
Je suis malheureusement incapable de l'adapter pour parcourir toutes les feuilles du classeur.

Merci par avance de votre aide.
Julien