Le passage d’un utilisateur « classique » à un utilisateur « expert » se résume souvent à un mot : l’automatisation. Pourquoi perdre 30 minutes à copier-coller des emails personnalisés quand un script peut le faire pour vous en 10 secondes ?

1. Structurez vos données

Pour que le script fonctionne, votre feuille de calcul doit être organisée. Voici la structure recommandée :

Colonne A (1)Colonne B (2)Colonne C (3)
PrénomEmailStatut
Jeanjean.dupont@email.com
Mariemarie.curie@email.com

2. Le script moderne (ES6+)

Ouvrez l’éditeur via Extensions > Apps Script et remplacez le code existant par celui-ci.

/**
 * Envoie des emails personnalisés à partir des données de la feuille active.
 */
const envoyerEmailsAutomatiques = () => {
  const classeur = SpreadsheetApp.getActiveSpreadsheet();
  const feuille = classeur.getActiveSheet();
  
  // Récupération de toutes les données d'un coup
  const plageDonnees = feuille.getDataRange().getValues();
  
  // On sépare l'en-tête du reste des données avec la décomposition (ES6)
  const [enTete, ...lignes] = plageDonnees;

  lignes.forEach((ligne, index) => {
    // Extraction propre des variables par ligne
    const [prenom, email, statut] = ligne;
    const numeroDeLigne = index + 2; // +2 car l'index commence à 0 et on a retiré l'en-tête

    // On n'envoie l'email que si le statut n'est pas déjà "Envoyé"
    if (statut !== "Envoyé" && email) {
      const sujet = `Bonjour ${prenom} - Information importante`;
      const corpsMessage = `Cher ${prenom},\n\nCeci est un message automatisé envoyé avec élégance depuis Google Sheets.\n\nÀ bientôt !`;

      try {
        MailApp.sendEmail(email, sujet, corpsMessage);
        
        // Mise à jour visuelle dans la feuille de calcul
        feuille.getRange(numeroDeLigne, 3).setValue("Envoyé");
        console.log(`Succès : Email envoyé à ${email}`);
      } catch (erreur) {
        console.error(`Erreur lors de l'envoi à ${email} : ${erreur.message}`);
      }
    }
  });
};

3. Pourquoi ce code est-il « moderne » ?

Quelques éléments pour vous expliquer la modernité du code.

  • const et let : On oublie var. Cela permet de mieux gérer la portée des variables et d’éviter les bugs imprévus.
  • Décomposition (Destructuring) : La ligne const [prenom, email, statut] = ligne; permet d’assigner les valeurs des colonnes à des noms clairs en une seule étape. C’est beaucoup plus lisible que ligne[0].
  • Littéraux de gabarits : Utiliser `Bonjour ${prenom}` au lieu de "Bonjour " + prenom évite les erreurs de concaténation et rend le texte plus naturel à rédiger.
  • La méthode forEach : Plus moderne et élégante que la boucle for traditionnelle, elle permet de parcourir les lignes de manière fluide.

4. Le petit « plus » : l’automatisation totale

Pour que ce script soit vraiment puissant, montrez à vos lecteurs comment configurer un Déclencheur (Trigger).

En cliquant sur l’icône de l’horloge dans le menu de gauche d’Apps Script, ils peuvent configurer l’envoi pour qu’il se produise toutes les nuits, ou à chaque fois qu’un formulaire est envoyé.

Note de sécurité : Lors de la première exécution, Google vous demandera d’autoriser le script à accéder à vos emails. C’est tout à fait normal : vous devenez votre propre développeur d’applications !

Soutenez mon travail !

Offrez-moi un café