Envoyer un mail en fonction de critère date dans Google Sheets ?

Un ami sportif me demandait s'il était possible de recevoir chaque matin par mail sa "séance d'entraînement depuis un programme saisi dans Google Sheet.

Une nouvelle fois, l'utilisation d'un script permet de gérer ce besoin.

Voici un exemple de fichier avec trois colonnes : Date / Titre exercice / Exercices à réaliser



Avec ces quelques lignes de script, chaque jour, vous recevrez un mail de la séance à réaliser.

function mailJournalier() {
  var mail = Session.getActiveUser();
  var aujourdhui = new Date().toDateString();
  var table = SpreadsheetApp.getActive()
  .getSheetByName("Programme")
  .getDataRange().getValues();
  for (var rang=1; rang <table.length; rang ++)
    if (table[rang][0].toDateString() == aujourdhui)
      MailApp.sendEmail(
        mail,
        "Entraînement d'aujourd'hui: " + table[rang][1] ,
        table[rang][2]
      );
}

Le traitement vérifie pour chaque ligne que dans la première colonne, la date indiquée est égale à la date du jour. Si c'est le cas, un mail est envoyé à l'utilisateur actif avec la seconde colonne en objet et la troisième colonne dans le corps du mail.

Il est nécessaire de lancer une première fois le script pour valider les autorisations.

Ensuite, il suffit de rajouter un déclencheur :
  • Dans l'éditeur de script, sélectionnez Edition> Déclencheurs du projet en cours.
  • Cliquez sur + Ajouter un déclencheur (coin inférieur droit)
  • Choisissez une fonction: mailJournalier
  • Sélectionnez la source de l'événement: Déclencheur horaire
  • Sélectionnez le type de déclencheur temporel: Quotidien
  • Sélectionnez l'heure de la journée: quand vous voulez le courrier
  • Cliquez sur Enregistrer

Commentaires