Numeriblog Google Workspace Google Apps Script, la puissance des outils Google à portée de scripts Google Sheets et Google Apps Script : envoyer un mail automatiquement à chaque anniversaire

Google Sheets et Google Apps Script : envoyer un mail automatiquement à chaque anniversaire

Vous avez une liste de contacts et vous souhaitez recevoir un mail de rappel le jour de leur anniversaire ? Voici un script à mettre en place pour répondre à ce besoin courant. Lister les […]

personnes ont consulté cet article

2 minutes

Rédigé par Antoine MARTIN - il y a 2 ans

Ce que vous allez découvrir

  • Lister les contacts :
  • Paramétrer la zone horaire du script :
  • Rédiger le script :
  • Créer un déclencheur quotidien :

Google Sheets et Google Apps Script : envoyer un mail automatiquement à chaque anniversaire

Vous avez une liste de contacts et vous souhaitez recevoir un mail de rappel le jour de leur anniversaire ? Voici un script à mettre en place pour répondre à ce besoin courant.

Lister les contacts :

Pour commencer, organisez correctement votre table de données : cf. l’article suivant pour affiner cette notion de table de données.

Paramétrer la zone horaire du script :

À l’instar de Doc et MacFly, nous allons manipuler et comparer des dates et parfois nous confronter à des paradoxes temporels qui pourraient mettre en péril le continuum espace-temps ! Alors quelques précautions s’imposent.

Assurez-vous que le script travaille sur la même tranche horaire que vous ! En effet, si le script travaille sur la TimeZone de New-York, il pourrait être décalé d’une journée selon l’heure à laquelle se déclenchera le script… et le jour de l’anniversaire indiqué dans votre table de données pourrait aussi subir un décalage.

Pour paramétrer la tranche horaire, affichons le manifeste :

Changez si besoin la valeur « TimeZone » en « Europe/Paris » (trouvez votre TimeZone sur cette page) ;

Rédiger le script :

Cliquez sur  » Outils > Éditeur de scripts  »

Saisissez le code suivant :

donnez le nom exact de la feuille qui recueille les informations dans « getSheetByName() » ; adaptez le script à votre adresse mail dans « MailApp.sendEmail() ».

function alerteAnniversaire() {
const aujourdhui = new Date() ;
const jou

Veuillez créer un compte pour lire la suite de cette ressource

L’accès à cette ressource se fait gratuitement en créant un compte Numerifan. Les abonnements payants donnent également accès aux cours gratuits.

Paywall image

Cet article est réservé aux abonnés. Pourquoi ?

Fournir tout ce contenu nous demande beaucoup de temps, des ressources et une veille permanente. Accédez à ce contenu en rejoignant notre super communauté, pour tous nous remercier 💪

Besoin d'un peu plus d'aide sur Sheets ?

Des formateurs sont disponibles toute l'année pour vous accompagner et optimiser votre utilisation de Sheets, que ce soit pour votre entreprise ou pour vos besoins personnels !

Découvrir nos formations Sheets

Rédacteur

Photo de profil de l'auteur
Antoine MARTIN

Consultant et formateur sur les outils bureautiques, j'ai intégré l'équipe de Numericoach en 2020. J'accompagne les utilisateurs de Google Workspace à trouver des solutions répondant à leurs besoins. Mes domaines de prédilections sont les outils Sheets, Docs, Slides et Google Apps Script.

S’abonner
Notification pour
guest
12 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Thierry

Bravo pour ce use case très demandé

Cet avis vous a été utile ?

Kevin
Kevin

Bonjour,
tout d’abord merci pour votre post qui m’a fortement aidé !
J’aurai une petite question étant débutant :
Comment faites vous pour arrêter le programme sous une certaines condition ? Car actuellement il déroule tout la colonne et j’aimerai l’arrêter a une certaine ligne. J’ai tenté avec un return dans un if mais cela ne faisait rien, puis un break dans le même if mais impossible, il me met une erreur.
Merci d’avance pour votre réponse !

Cet avis vous a été utile ?

Kevin
Kevin
Répondre à  Kevin
1 année il y a

Solution trouvé ! ^^
( Copié la fonction if avec le return une seconde fois en dehors de la boucle pour mettre fin au programme )
Merci encore pour votre post !

Cet avis vous a été utile ?

Dreadaxe

Peut-on transformer les e-mails en notification ?
Peut-on récupérer les anniversaires de ses contacts ?

Cet avis vous a été utile ?

Antoine MARTIN
Répondre à  Dreadaxe
1 année il y a

Bonjour Dreadaxe. Comment ça va ?

Cet avis vous a été utile ?

Dreadaxe
Répondre à  Antoine MARTIN
1 année il y a

Bonjour Antoine ! Désolé pour la rugueur de mon premier message 😉
Exite-t-il un moyen de transformer les e-mails en notification ? J’ai vu que AppSheet savait faire
Peut-on récupérer les anniversaires dans ses contacts ? L’extension Yet Another Mail Merge sait récupérer des informations des contacts mais pas les dates d’anniversaire…

Cet avis vous a été utile ?

Redouane
Redouane

Bonjour Antoine
Je viens d’utiliser et adapter votre fonction à mes besoins et j’ai trouvé cela fort utile. Merci beaucoup pour cette publication.
Redouane

Cet avis vous a été utile ?

Sylvain
Sylvain

Bonjour,
Merci pour votre script cela m’a beaucoup aidé.
Je souhaiterais ajouter une deuxième adresse mail, comment faut-il faire ?
Et je souhaiterais également que le mail soit envoyé 7 jours avant ?
Merci par avance pour votre aide.

Cet avis vous a été utile ?

Antoine MARTIN
Répondre à  Sylvain
5 mois il y a

Bonjour Sylvain,
pour envoyer un message à plusieurs adresses mail, il suffit de séparer les adresses des destinataires par une virgule.
MailApp
.sendEmail(
« VOTREMAIL@FAI.COM , VOTREDEUXIEMEMAIL@FAI.COM « ,
« Rappel »,
« Anniversaire de « +ligne[0]+ » « +ligne[1]);
Pour envoyer la notification 7 jours avant, il faut soit décaler la date du jour, soit celle de l’anniversaire.
Je propose la première solution :
sous la ligne de définition de la constante Aujourdhui :
const dateDans7Jours = new Date(aujourdhui.getFullYEar(),aujourdhui.getMonth(),aujourdhui.getDate()+7)
const jourMoisDans7Jours = dateDans7Jours.getDate()+ »/ »+ (dateDans7Jours.getMonth()+1) ;
et remplacer
if (jourMoisAujourdhui == jourMoisAnniversaire)
par
if (jourMoisDans7Jours == jourMoisAnniversaire)
Je n’ai pas testé mais ça devrait le faire 🙂
Bonne continuation !

Cet avis vous a été utile ?