Bonjour,
Dans une démarche d'automatisation de nos systèmes, je recherche à programmer l'envoi de mails via Google Sheets sous certaines conditions.
Je dispose d'un fichier Google Sheets qui représente un planning de disponibilité (selon le jour et une personne).
Ce que je souhaite, c'est que mon programme parcours le calendrier de ce fichier et identifie pour la semaine suivante si aucune case "Sur place" n'est présente. Si cela est bien le cas, un mail doit être envoyé (préférence en début de semaine) pour faire un rappel auprès des collaborateurs.
Après diverses recherches, j'ai commencé un semblant de programmation sur Apps Script afin de faire une macro sur mon fichier Sheets.
Ma "feuille1" correspond Ã* mon planning et ma "feuille2" correspond au listing des mails destinataires.
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 /** @OnlyCurrentDoc */ function sendEmails(){ var feuille1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SAL"); var feuille2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Mails"); var planning24 = feuille1.getRange("D136:K366").getValue(); if (planning24!=='Sur place'){ var adresseMail = feuille2.getRange("C2:C9").getValue(); var objet = 'Rappel : Vsite sécurité SAL'; var corps = "Bonjour. Actuellement, aucune visite sécurité n'est prévue sur SAL pour la semaine qui vient. Merci de vérifier le planning et de vous y ajouter en cas de disponibilité." ; MailApp.sendEmail(adresseMail, objet, corps); } }
C'est une première ébauche mais je ne l'ai encore pas mis à exécution car je suppose plusieurs problèmes à ma programmation :
- J'ai peur que le programme envoie un mail toutes les semaine et ce même si 'Sur place' est présent dans le tableau
- Je pense que la programmation du déclencheur selon l'agenda Google pour chaque lundi entre 7h et 8h n'est pas correct car cela ne se basera pas sur la feuille de calcul (tableau). Peut-être existe-t-il une fonction "date" reprenant l'horodateur de la feuille Sheets ?
- J'ai l'impression qu'avec cette programmation, je devrais faire un bloc de programmation par semaine (soit une cinquantaine)
Si je devais traduire "vulgairement" en code ce que je souhaite réaliser, voici ce que cela donnerait :
Pour une certaine plage de données du tableau ;
IIIIPour chaque période de 7 jours du tableau ;
IIIIIIIISi aucune case n'est égale à 'Sur place' ;
IIIIIIIIIIIIEnvoyer un mail à la liste de diffusion le lundi à 8h;
IIIIIIIIFin Si
IIIIFin Pour
Fin Pour
Auriez-vous des pistes de réponses me permettant de remplir mon cahier des charges ?
Je reste disponible pour apporter davantage de précision sur ce projet,
Cordialement
Partager