Vous est-il déjà arrivé d’avoir une longue liste de contacts dans Google Sheets et de devoir envoyer le même message à chacun d’eux ? Peut-être une invitation, une mise à jour rapide ou un rappel.
Copier-coller chaque adresse dans Gmail est long, fastidieux et source d’erreurs. 😫
Et si je vous disais que vous pouvez créer un bouton directement dans votre feuille de calcul qui, d’un seul clic, enverra votre message à toute la liste ?
Pas besoin d’être un développeur chevronné. Nous allons utiliser Google Apps Script, le super-pouvoir caché de Google Workspace™, pour créer cette « macro » (comme l’a très bien deviné un de nos lecteurs !).
Prêt à gagner un temps fou ? Allons-y !
La préparation : mettre en place votre fichier
Avant de plonger dans le code, préparons notre « centre de commande » dans Google Sheets. C’est simple :
- Ouvrez une nouvelle feuille Google Sheets.
- En colonne A : Listez toutes les adresses e-mail de vos destinataires, en commençant par la cellule A2. (Laissez A1 pour un titre, comme « Emails »).
- En cellule B1 : Rédigez le corps de l’e-mail que vous souhaitez envoyer.
- En cellule C1 : Écrivez la ligne d’objet (sujet) de votre e-mail.
Votre feuille devrait ressembler à ceci :

L’éditeur de script : Là où la magie opère
Maintenant, nous allons ouvrir l’outil qui va nous permettre de donner des instructions à Google Sheets.
- Dans le menu de votre feuille de calcul, allez dans Extensions > Apps Script.
Une nouvelle fenêtre (ou un nouvel onglet) va s’ouvrir. C’est votre éditeur de script. Il y aura peut-être un peu de code par défaut (function myFunction() {...}). Effacez tout pour partir d’une page blanche.
Le code : copier, coller et comprendre
Copiez le code ci-dessous et collez-le dans l’éditeur Apps Script que vous venez d’ouvrir.
function envoyerEmails() {
// 1. On récupère la feuille de calcul active
const feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// 2. On récupère la liste des adresses mail (de A2 jusqu'à la dernière ligne remplie)
const donnees = feuille.getRange("A2:A" + feuille.getLastRow()).getValues();
// 3. On récupère le contenu du mail en B1
const message = feuille.getRange("B1").getValue();
// 4. On récupère le sujet du mail en C1
const sujet = feuille.getRange("C1").getValue();
// 5. On crée une boucle pour parcourir chaque ligne
donnees.forEach(function(ligne) {
const email = ligne[0]; // L'email est le premier élément de la ligne
// 6. Petite vérification : on n'envoie que si la case email n'est pas vide
if (email) {
// 7. L'envoi !
MailApp.sendEmail(email, sujet, message);
}
});
}
N’oubliez pas de sauvegarder votre projet en cliquant sur l’icône de disquette 💾 (ou Ctrl + S / Cmd + S). Vous pouvez lui donner un nom, par exemple « Envoi Emails ».
Explication pour les curieux (Pas de jargon, promis !)
Ne partez pas en courant ! Ce code est très facile à lire, même pour un débutant :
function envoyerEmails() { ... }: C’est simplement le nom que nous donnons à notre série d’instructions.const feuille = ...: On dit au script « Regarde la feuille que l’utilisateur est en train de voir ».const donnees = ...: On lui dit « Va chercher toutes les valeurs de la colonne A, en commençant par A2 ».const message = ...etconst sujet = ...: On lui dit « Stocke le texte que tu trouves en B1 et C1 ».donnees.forEach(...): C’est la partie la plus cool. Ça veut dire : « Pour chaque adresse e-mail que tu as trouvée dans la liste… »if (email) { ... }: Une petite sécurité pour ignorer les lignes vides.MailApp.sendEmail(...): C’est l’ordre final ! « Maintenant, utilise Gmail pour envoyer un e-mail à cette adresse, avec ce sujet et ce message. »
Les Permissions : La première exécution
La première fois que vous utiliserez ce script, Google vous demandera votre permission. C’est parfaitement normal.
- Dans l’éditeur Apps Script, cliquez sur le bouton Exécuter (juste au-dessus de votre code).
- Une fenêtre « Autorisation requise » va s’afficher. Cliquez sur Examiner les autorisations.
- Choisissez votre compte Google.
- Vous verrez peut-être un avertissement « Google n’a pas validé cette application ». Pas de panique ! C’est parce que vous venez de créer ce code, il n’est pas public. Cliquez sur Paramètres avancés, puis sur Accéder à [Nom de votre projet] (non sécurisé).
- Acceptez les autorisations (le script a besoin de « Voir, modifier… vos feuilles de calcul » et « Envoyer des e-mails en votre nom »).
Votre script vient de s’exécuter une fois ! Vérifiez votre dossier « Messages envoyés » dans Gmail, vous devriez voir les e-mails partir.
L’étape finale : créer le bouton magique
Revenons à notre feuille Google Sheets. Nous allons maintenant créer le bouton promis.
- Dans le menu, allez dans Insertion > Dessin.
- Créez un bouton à votre goût. Vous pouvez utiliser l’outil « Formes » pour dessiner un rectangle et y ajouter du texte, par exemple « ENVOYER LES EMAILS ».
- Cliquez sur Enregistrer et fermer.
Votre dessin apparaît maintenant sur votre feuille. Vous pouvez le déplacer où vous voulez (par exemple, à côté de votre sujet en C1).
- Cliquez sur votre dessin pour le sélectionner.
- Cliquez sur l’icône avec les trois petits points (⋮) qui apparaît en haut à droite du dessin.
- Choisissez Attribuer un script.
- Dans la petite fenêtre qui s’ouvre, tapez exactement le nom de notre fonction :
envoyerEmails(sans les parenthèses). - Cliquez sur OK.
C’est fini ! 🥳
Et voilà ! Vous avez maintenant un bouton fonctionnel.
Désormais, lorsque vous cliquerez sur ce dessin, le script envoyerEmails s’exécutera en arrière-plan et enverra votre message (B1) avec votre sujet (C1) à toute votre liste (colonne A).
⚠️ Une petite mise en garde : Google impose des quotas sur le nombre d’e-mails que vous pouvez envoyer par jour via MailApp (100 pour un compte Gmail gratuit, 1500 pour un compte Google Workspace™). C’est parfait pour la plupart des usages, mais ce n’est pas fait pour envoyer 10 000 newsletters !
J’espère que ce tutoriel vous a plu et vous fera gagner un temps précieux.
Alors, à vous de jouer ! Quelles autres tâches répétitives aimeriez-vous automatiser dans Google Workspace™ ? Posez-moi vos questions et défis dans les commentaires ci-dessous ! 👇