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.

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- Tutos connexes
- Plus de l'auteur
Bravo pour ce use case très demandé
Cet avis vous a été utile ?
Merci Thierry !
Cet avis vous a été utile ?
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 ?
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 ?
Bonjour Kevin, Merci pour tes messages.
Break n’est pas possible effectivement dans une boucle forEach(). Pour arrêter une boucle il vaut utiliser for(i=0;i
Cet avis vous a été utile ?
Peut-on transformer les e-mails en notification ?
Peut-on récupérer les anniversaires de ses contacts ?
Cet avis vous a été utile ?
Bonjour Dreadaxe. Comment ça va ?
Cet avis vous a été utile ?
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 ?
Bonjour Dreadaxe,
C’est une bonne question pour les notifications, je n’ai pas encore étudié la possibilité.
Pour les anniversaires de contacts, le service Contacts permet de récupérer ces informations : https://developers.google.com/apps-script/reference/contacts/contact#getdateslabel
Bonne soirée 🙂
Cet avis vous a été utile ?
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 ?
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 ?
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 ?