Scripter un mail automatique en insérant un tableau

Bonjour,

Je suis en train de réaliser un tableau de suivi de données qui sera constamment mis à jour. Je précise être débutant sur google sheet, et notamment sur le script.

Dans ce type :

CriticitéRéférenceDescriptionDate de requête

En gros j'ai fais un bouton au dessus de ce tableau dans mon fichier, qui permet d'envoyer un mail aux gens pour dire que des refs ont été ajoutées.

Ma question :

Est-il possible de scripter sur google sheet pour que désormais, à chaque fois qu'une référence ajoutée et que la date de requête correspond à la date du jour (exemple si on est le 16/02/2022 et que j'insère 3 lignes de requête au 16/02/2022) uniquement ces 3 lignes et l'entête du tableau soient intégrées dans le mail générique qui part dès que j'ai appuyé sur le bouton d'envoi de l'e-mail à mon équipe ?

Dans un premier temps c'est question de faisabilité (sans que ce soit quelque chose de trop complexe)

Merci d'avance des réponses et préconisations :)

Bonjour,

Est-il possible de scripter sur google sheet pour que désormais, à chaque fois qu'une référence ajoutée et que la date de requête correspond à la date du jour (exemple si on est le 16/02/2022 et que j'insère 3 lignes de requête au 16/02/2022) uniquement ces 3 lignes et l'entête du tableau soient intégrées dans le mail générique qui part dès que j'ai appuyé sur le bouton d'envoi de l'e-mail à mon équipe ?

Dans un premier temps c'est question de faisabilité (sans que ce soit quelque chose de trop complexe)

oui c'est possible

mets un lien vers un exemple de données pour aller plus loin

solution à adapter https://forum.excel-pratique.com/sheets/partager-une-portion-seulement-d-un-tableau-168183#p1041920

Bonjour,

Merci pour ta réponse, je viens de joindre un exemple des datas un peu simplifiées ^^.

Mais grosso modo ce sont les types de données que je dois partager et que j'aimerai qui s'intègrent sous forme de tableau dans mon mail.

Merci pour le lien, je vais regarder ca :)

Bonjour,

je ne peux rien faire avec un fichier xlsx

partage un fichier GSheets comme suit https://www.sheets-pratique.com/fr/cours/partage

function sendEmail() {
  MailApp.sendEmail({
    to: 'untel@gmail.com',
    subject: 'my subject',
    htmlBody: tableHTML()
  })
};
function tableHTML() {
  var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Feuille 1')
  var plage = sh.getRange('B3:E' + sh.getLastRow())
  var d = Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy")
  var data = plage.getDisplayValues()
  var taille = plage.getFontSizes()
  var fond = plage.getBackgrounds()
  var couleur = plage.getFontColors()
  var police = plage.getFontFamilies()
  var htmltable = '<table style="border:1px solid #CCC;border-collapse:collapse;">';
  for (row = 0; row < data.length; row++) {
    if (row == 0 || data[row][3] == d) {
      htmltable += '<tr>';
      for (col = 0; col < data[row].length; col++) {
        if (data[row][col] === "" || 0) { htmltable += '<td>' + ' ' + '</td>'; }
        else
          htmltable += '<td style="border:1px solid #CCC; font-family:' + police[row][col] + '; background-color:' + fond[row][col] + '; color:' + couleur[row][col] + '; font-size:' + taille[row][col] + 'px;">' + data[row][col] + '</td>';
      }
      htmltable += '</tr>';
    }
  }
  htmltable += '</table>';
  return htmltable
}

Top !! Merci !

Si j'ai bien compris la démarche :

  • Ca va rechercher tout ce qui est intégré à la date du jour
  • Ca sélectionne ce qui est en couleur ? car en fait, les lignes que j'ai identifiées en couleur sont à titre d'exemple. Sur le fichier original, elles ne seront pas démarquées. Par conséquent, est ce que je peux raccourcir la fonction simplement à ce qui est daté du jour ?

le seul critère c'est la date du jour, la couleur l'intervient pas du tout

ligne 0 pour l'en-tête et ensuite les lignes qui correspondent à la date du jour

if (row == 0 || data[row][3] == d)

ah ok, merci.

Sur mon fichier original j'arrive bien à sortir l'entête du tableau dans un mail auto, par contre les lignes à la date du jour ne sortent pas.

J'ai les dates qui sont naturellement à l'américaine "MM/dd/yyy" par contre lorsque je personnalise ma colonne Date en "dd/MM/yyyy", si je tape dans cet ordre : 17/02 et que j'entre la donnée, ca reste 17/02. Or si je tape 02/17, ca marque bien "17/02/2022"

Est ce que c'est la cause possible à l'absence des lignes dans mon mail ?

Je viens de changer la version locale vers France pour corriger ca. Cela dit je n'arrive pas à afficher les lignes datées du jour ^^

Ok c'est parce que j'ai des colonnes en plus...

Rechercher des sujets similaires à "scripter mail automatique inserant tableau"