Macros Google Sheets

Google Sheets vous permet d'enregistrer des macros qui dupliquent une série spécifique d'interactions d'interface utilisateur que vous définissez. Une fois que vous avez enregistré une macro, vous pouvez l'associer à un raccourci clavier au format Ctrl+Alt+Shift+Number. Vous pouvez utiliser ce raccourci pour réexécuter rapidement les étapes exactes de la macro, généralement dans un autre emplacement ou sur d'autres données. Vous pouvez également activer la macro à partir du menu Extensions > Macros de Google Sheets.

Lorsque vous enregistrez une macro, Google Sheets crée automatiquement une fonction Apps Script (la fonction macro) qui reproduit les étapes de la macro. La fonction de macro est ajoutée à un projet Apps Script lié à la feuille, dans un fichier intitulé macros.gs. Si un fichier de projet est déjà lié à la feuille portant ce nom, la fonction de macro y est ajoutée. Google Sheets met également automatiquement à jour le manifest du projet de script, en enregistrant le nom et le raccourci clavier attribués à la macro.

Étant donné que chaque macro enregistrée est entièrement définie dans Apps Script, vous pouvez la modifier directement dans l'éditeur Apps Script. Vous pouvez même écrire des macros à partir de zéro dans Apps Script ou transformer des fonctions que vous avez déjà écrites en macros.

Créer des macros dans Apps Script

Vous pouvez utiliser des fonctions écrites en Apps Script comme fonctions de macro. Le moyen le plus simple de procéder consiste à importer une fonction existante depuis l'éditeur Google Sheets.

Vous pouvez également créer des macros dans l'éditeur Apps Script en procédant comme suit:

  1. Dans l'interface utilisateur de Google Sheets, sélectionnez Extensions > Apps Script pour ouvrir le script lié à la feuille dans l'éditeur Apps Script.
  2. Écrivez la fonction de macro. Les fonctions de macro ne doivent pas comporter d'arguments et ne doivent pas renvoyer de valeurs.
  3. Modifiez votre fichier manifeste de script pour créer la macro et l'associer à la fonction de macro. Attribuez-lui un nom et un raccourci clavier uniques.
  4. Enregistrez le projet de script. La macro est ensuite disponible dans la feuille.
  5. Testez la fonction de macro dans la feuille pour vous assurer qu'elle fonctionne comme prévu.

Modifier des macros

Vous pouvez modifier les macros jointes à une feuille de la manière suivante:

  1. Dans l'interface utilisateur de Google Sheets, sélectionnez Extensions > Macros > Gérer les macros.
  2. Recherchez la macro que vous souhaitez modifier, puis sélectionnez > Modifier la macro. L'éditeur Apps Script s'ouvre sur le fichier de projet contenant la fonction de macro.
  3. Modifiez la fonction de la macro pour modifier son comportement.
  4. Enregistrez le projet de script. La macro peut alors être utilisée dans la feuille.
  5. Testez la fonction de macro dans la feuille pour vous assurer qu'elle fonctionne comme prévu.

Importer des fonctions en tant que macros

Si un script est déjà associé à une feuille, vous pouvez import une fonction dans le script en tant que nouvelle macro, puis lui attribuer un raccourci clavier. Pour ce faire, modifiez le fichier manifeste et ajoutez un autre élément à la propriété sheets.macros[].

Vous pouvez également procéder comme suit pour importer une fonction en tant que macro depuis l'interface utilisateur de Sheets:

  1. Dans l'interface utilisateur de Google Sheets, sélectionnez Extensions > Macros > Importer.
  2. Sélectionnez une fonction dans la liste qui s'affiche, puis cliquez sur Ajouter une fonction.
  3. Sélectionnez pour fermer la boîte de dialogue.
  4. Sélectionnez Extensions > Macros > Gérer les macros.
  5. Recherchez la fonction que vous venez d'importer dans la liste. Attribuez un raccourci de clavier unique à la macro. Vous pouvez également modifier le nom de la macro ici. Le nom par défaut est celui de la fonction.
  6. Cliquez sur Mettre à jour pour enregistrer la configuration de la macro.

Structure du fichier manifeste pour les macros

L'exemple d'extrait de fichier manifeste suivant montre la section d'un manifest qui définit les macros Google Sheets. La section sheets du fichier manifeste définit le nom et le raccourci clavier attribués à la macro, ainsi que le nom de la fonction de macro.

  {
    ...
    "sheets": {
      "macros": [{
        "menuName": "QuickRowSum",
        "functionName": "calculateRowSum",
        "defaultShortcut": "Ctrl+Alt+Shift+1"
      }, {
        "menuName": "Headerfy",
        "functionName": "updateToHeaderStyle",
        "defaultShortcut": "Ctrl+Alt+Shift+2"
      }]
    }
  }

Pour en savoir plus sur la création des fichiers manifestes de macros Sheets, consultez la section Ressource de fichier manifeste de macro Sheets.

Bonnes pratiques

Lorsque vous créez ou gérez des macros dans Apps Script, nous vous recommandons de suivre les consignes suivantes.

  1. Les macros sont plus performantes lorsqu'elles sont légères. Si possible, limitez le nombre d'actions d'une macro.
  2. Les macros sont particulièrement adaptées aux opérations répétitives qui doivent être répétées fréquemment avec peu ou pas de configuration. Pour les autres opérations, envisagez d'utiliser un élément de menu personnalisé à la place.
  3. N'oubliez pas que les raccourcis de clavier de macro doivent être uniques et qu'une feuille donnée ne peut contenir que dix macros avec des raccourcis à la fois. Les macros supplémentaires ne peuvent être exécutées que depuis le menu Extensions > Macros.
  4. Les macros qui apportent des modifications à une seule cellule peuvent être appliquées à une plage de cellules en sélectionnant d'abord la plage complète, puis en activant la macro. Par conséquent, il est souvent inutile de créer des macros qui dupliquent la même opération sur une plage de cellules prédéfinie.

Ce que vous ne pouvez pas faire

Les macros sont soumises à certaines restrictions:

Utiliser des macros en dehors des scripts liés

Les macros sont définies dans des scripts associés à des feuilles de calcul Google Sheets spécifiques. Les définitions de macro sont ignorées si elles sont définies dans un script autonome ou une application Web.

Définir des macros dans les modules complémentaires Sheets

Vous ne pouvez pas distribuer de définitions de macro à l'aide d'un module complémentaire Sheets. Toutes les définitions de macro d'un projet de module complémentaire Sheets sont ignorées par les utilisateurs de ce module complémentaire.

Distribuer des macros dans des bibliothèques de scripts

Vous ne pouvez pas distribuer de définitions de macro à l'aide de bibliothèques Apps Script.

Utiliser des macros en dehors de Google Sheets

Les macros ne sont disponibles que dans Google Sheets. Elles n'existent pas dans Google Docs, Google Forms ni Google Slides.