Les macros dans Google Sheets permettent d’automatiser des tâches répétitives dans Google Sheets, très simplement, sans coder. Nous avons vu les bases dans cet article Automatiser des tâches avec les macros Google Sheets.

Aujourd’hui, nous allons voir quelques exemples de macros courantes que vous pouvez utiliser pour optimiser votre travail.

Comment importer des macros dans Google Sheets

Voyons d’abord comment importer une macro dans votre propre Google Sheets :

  • Ouvrez Apps Script en allant dans Extensions > Apps Script
Menu Extensions de Google Sheets affichant l'option Apps Script pour accéder au script des macros.
  • Copier-coller le code de votre macro dans l’éditeur
  • Puis enregistrez en cliquant sur Enregistrer
Éditeur Apps Script avec le code de la macro FormaterTitre en surbrillance, prêt à être enregistré.
  • Ensuite, liez le code à une macro dans Google Sheets en allant dans
    • Extensions > Macros > Importer une macro
Menu Extensions > Macros dans Google Sheets avec l'option Importer une macro mise en évidence
  • Dans la fenêtre importer, cliquez sur Ajouter la fonction
Fenêtre d'importation d'une macro dans Google Sheets avec le bouton Ajouter la fonction encadré

Note : au premier lancement, vous devez autoriser la macro.

Pour exécuter la macro, allez dans Extensions > Macros > [Nom de votre macro]

Menu Extensions > Macros dans Google Sheets affichant la macro importée FormaterTitre prête à être exécutée

Exemples de macros

Pour importer les macros données en exemple ci-dessous, suivez la procédure décrite au dessus.

Insérer la date du jour

Cette macro permet d’insérer la date du jour dans la cellule sélectionnée, au format français.

function insererDate() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var cell = sheet.getActiveCell();
  cell.setValue(new Date()).setNumberFormat("dd/MM/yyyy");
}

Démonstration de la macro :

Feuille de calcul Google Sheets avec une cellule sélectionnée pour lancer la macro insérer la date du jour

Supprimer les lignes vides

Cette macro supprime toutes les lignes vides d’une feuille de calcul pour nettoyer les données.

function supprimerLignesVides() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getDataRange();
  const values = range.getValues();

  const emptyRows = values
    .map((row, index) => ({ index: index + 1, isEmpty: row.join("").trim() === "" }))
    .filter(row => row.isEmpty)
    .map(row => row.index)
    .reverse();

  emptyRows.forEach(rowIndex => sheet.deleteRow(rowIndex));
}

Démonstration de la macro :

Fichier Google Sheets formaté qui lance une macro pour mettre en forme les en-têtes :  mis en gras et colorés en bleu

Mettre en surbrillance des doublons

Cette macro met en surnbirllance les valeurs dupliquées dans une colonne. Placez vous sur la colonne que vous souhaitez analyser et lancez la macro.

Note : la macro ne prend pas en compte la ligne des en-têtes (ligne 1).

function mettreEnSurbrillanceDoublons() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getDataRange();
  const values = range.getValues().map(row => row[0]);
  const seen = new Set();

  values.forEach((value, index) => {
    if (index === 0) return;

    if (seen.has(value)) {
      sheet.getRange(index + 1, 1).setBackground("red");
    } else {
      seen.add(value);
    }
  });
}

Démonstration de la macro :

Tableau dans Google Sheets contenant des doublons, démontrant l'application de ma macro de mise en surbrillance des doublons

Réinitialiser les filtres

Cette macro permet de réinitialiser tous les filtres appliqués sur une feuille de calcul.

function resetFilter() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const filter = sheet.getFilter();
  if (filter) {
    filter.remove();
  }
  const range = sheet.getDataRange();
  range.createFilter();
}

Démonstration de la macro :

Feuille Google Sheets avec des filtres appliqués à un tableau, montrant l'exécution d'une macro de réinitialisation des filtres

Afficher toutes les feuilles masquées

Cette macro permet de réinitialiser tous les filtres appliqués sur une feuille de calcul.

function resetFilter() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const filter = sheet.getFilter();
  if (filter) {
    filter.remove();
  }
  const range = sheet.getDataRange();
  range.createFilter();
}

Démonstration de la macro :

Feuille de calcul Google Sheets lançant une macro qui affiche toutes les feuilles de calcul masquées.

Catégorisé dans :

Google Apps Script,