DriveApp ne fonctionne pas si l'id de l'image est dans une cellule

Bonjour tout le monde,
J'ai un problème avec la méthode DriveApp.
Je créée un mail dans lequel j'ajoute une image. Cette image est référencée dans le sheet dans une cellule par son id. 
Elle est ensuite Intégrée dans le fichier html.
Le problème est que quand j'exécute le code pour aller chercher l'id dans la cellule, il me dit que la méthode n'est pas compatible avec DriveApp.
Mais si je mets à la main dans le code l'id directement, l'image est insérée.
Comment résoudre ça, s'il vous plait ?
Je vous remercie.
Bonne journée
Basile

function emailnewletters() {
      var confirm = Browser.msgBox('📧 Envoyer la newsletter ? ', Browser.Buttons.YES_NO); 
      if(confirm!='yes'){return};
  var htmlBody = HtmlService.createTemplateFromFile('Newsletter');  
  var ssheet=SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ssheet.getSheetByName("Gestion");

  var r = sheet.getRange("U:U");
  var v = r.getValues();
    for (var i = 1, l = v.length; i < l; i++) {
      var objet = sheet.getRange(i,2);
      var titreprincipal = sheet.getRange(i,4);
      var intro = sheet.getRange(i,5);
      var soustritre = sheet.getRange(i,6);
      var titrebloc1 = sheet.getRange(i,7);
      var textebloc1 = sheet.getRange(i,8);
      var titrebloc2 = sheet.getRange(i,9);
      var textebloc2 = sheet.getRange(i,10);
      var titrebloc3 = sheet.getRange(i,11);
      var textebloc3 = sheet.getRange(i,12);
      var titrebloc4 = sheet.getRange(i,13);
      var textebloc4 = sheet.getRange(i,14); 
      var titreimage = sheet.getRange(i,15);
      var file_id  = sheet.getRange(i,16).getValue();
      var imageId = DriveApp.getFileById(file_id); // = do not work but :  DriveApp.getFileById("xxxx"); works
      var imageBlob = imageId.getBlob();  
      var conclusion = sheet.getRange(i,17);
      var remerciements = sheet.getRange(i,18);
      var emailrange = sheet.getRange(i,21);
      var email = emailrange.getValue();
      var  cellule  =  sheet.getRange ("S"+ i);
      var  val  =  cellule.getValue();
       if  ( val =="OUI" )  {

  // set the values for the placeholders
    htmlBody.titreprincipal = titreprincipal.getValues();
    htmlBody.intro = intro.getValues();
    htmlBody.soustritre = soustritre.getValues();
    htmlBody.titrebloc1 = titrebloc1.getValues();
    htmlBody.textebloc1 = textebloc1.getValues();
    htmlBody.titrebloc2 = titrebloc2.getValues();
    htmlBody.textebloc2 = textebloc2.getValues();
    htmlBody.titrebloc3 = titrebloc3.getValues();
    htmlBody.textebloc3 = textebloc3.getValues();
    htmlBody.titrebloc4 = titrebloc4.getValues();
    htmlBody.textebloc4 = textebloc4.getValues();
    htmlBody.titreimage = titreimage.getValues();
    //htmlBody.lienimage = lienimage.getValues();
    htmlBody.conclusion = conclusion.getValues();
    htmlBody.remerciements = remerciements.getValues();

  // evaluate and get the html
      var email_html = htmlBody.evaluate().getContent();
      var subject =  objet.getValue() ;

      MailApp.sendEmail({
      to: email,
      cc :"basile.woets@boulanger.com",
      subject: subject,
      htmlBody: email_html,
       inlineImages: {image: imageBlob}
    });
    sheet.getRange ( "T"  +  i ).setValue("Envoyée");
   SpreadsheetApp.getActiveSpreadsheet().toast('Newsletter envoyée !', '📧 Confirmation') 

  } 

  }
}

Bonjour

je viens de faire un essai, cela fonctionne

function myFunction() {
  var ssheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ssheet.getSheetByName("image");
  var file_id = sheet.getRange('A2').getValue();
  var imageId = DriveApp.getFileById(file_id); // 1ZvY-Fk-l4iVWzWWvNO1PM9z5BKUI-z27
  var imageBlob = imageId.getBlob();
  MailApp.sendEmail({
    to: 'mxxxxx@gmail.com',
    cc: "bxxxxx@yyyyy.com",
    subject: 'test image',
    htmlBody: 'test image<br>',
    inlineImages: { image: imageBlob }
  });
}

Bonjour Mike,

Merci pout ta réponse.

Toujours pareil de mon côté.

12:05:38 Erreur
Exception: Unexpected error while getting the method or property getFileById on object DriveApp.
emailnewletters @ Code.gs:26

est ce que c'est à cause du mon getRange ? J'ai (i,16).

Le format attendu ne serait pas ("P") mais si c'est ça j'ajoute comment le i ?

Bonne journée

Ajoute un

console.log(sheet.getRange(i,16).getValue())

dans le code, ou

console.log(sheet.getRange('P'+i).getValue())

J'ai ajouté,

Il me renvoie bien l'id.

Mais l'erreur est toujours la même.

14:44:38 Avis Exécution démarrée
14:44:39 Infos "xxxx"
14:44:39 Erreur
Exception: Unexpected error while getting the method or property getFileById on object DriveApp.
emailnewletters @ Code.gs:61

pfttt, alors là je ne peux pas t'aider car chez moi cela fonctionne et tu as dû recevoir un mail test

ajoute trim() ou vérifie qu'il n'y a pas de blanc superflus !

console.log(file_id.length)

doit être égal à 33

es-tu dans un environnement de type "organisation" ? pourtant si, en mettant en dur l'id, cela fonctionne il n'y a pas de raison !

Mike,

J'ai trouvé mon erreur.

L'id de l'image dans la cellule contenait des guillemets donc en regardant dans le débogage, j'ai vu qu'il me le retournait sous le format ""xxxx"".

Evidemment en les supprimant côté sheet, j'ai résolu le problème.

Encore un grand merci pour ton aide.

Bonne journée

Rechercher des sujets similaires à "driveapp fonctionne pas image"