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. Utilisez ce raccourci pour exécuter rapidement les mêmes étapes de macro, généralement à un autre emplacement ou sur d'autres données. Vous pouvez également activer la macro à partir du menu Extensions > Macros de Sheets.

Lorsque vous enregistrez une macro, Sheets crée automatiquement une fonction Apps Script (la fonction macro) qui reproduit les étapes de la macro. La fonction macro est ajoutée à un projet Apps Script lié à la feuille, dans un fichier intitulé macros.gs. Si un fichier de projet portant ce nom est déjà lié à la feuille, la fonction macro y est ajoutée. Sheets met également à jour automatiquement le fichier manifeste du projet de script manifeste, 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 de A à Z dans Apps Script, ou prendre des fonctions que vous avez déjà écrites et les transformer en macros.

Créer des macros dans Apps Script

Vous pouvez prendre des fonctions écrites dans Apps Script et les utiliser comme fonctions de macro. Pour ce faire, vous pouvez importer une fonction existante à partir de l'éditeur Sheets.

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

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

Modifier des macros

Pour modifier les macros associées à une feuille, procédez comme suit :

  1. Dans l'interface utilisateur de 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 alors sur le fichier de projet contenant la fonction de macro.
  3. Modifiez la fonction de macro pour changer le comportement de la macro.
  4. Enregistrez le projet de script. La macro peut ensuite être utilisée dans la feuille.
  5. Testez la fonction de macro dans la feuille pour vérifier qu'elle fonctionne comme prévu.

Importer des fonctions en tant que macros

Si un script est déjà lié à une feuille, vous pouvez importer 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 sheets.macros[] propriété.

Vous pouvez également importer une fonction en tant que macro à partir de l'interface utilisateur de Sheets en procédant comme suit :

  1. Dans l'interface utilisateur de Sheets, sélectionnez Extensions > Macros > Importer.
  2. Sélectionnez une fonction dans la liste présentée, 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 clavier unique à la macro. Vous pouvez également modifier le nom de la macro ici. Par défaut, il s'agit du nom de la fonction.
  6. Cliquez sur Mettre à jour pour enregistrer la configuration de la macro.

Structure du fichier manifeste pour les macros

L'extrait d'exemple de fichier manifeste suivant montre la section d'un manifeste qui définit les macros 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.

Les fichiers manifestes incluent d'autres composants liés aux propriétés Apps Script. Les champs sous la clé sheets sont directement liés à la fonctionnalité Sheets. Cet exemple n'est qu'une partie d'un fichier manifeste complet et n'est pas un fichier manifeste entièrement fonctionnel.

{
  ...
  "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 de fichiers manifestes de macros Sheets, consultez la ressource Fichier manifeste de macro Sheets.

Bonnes pratiques

Lorsque vous créez ou gérez des macros dans Apps Script, suivez ces consignes :

  1. Les macros sont plus performantes lorsqu'elles sont légères. Dans la mesure du possible, limitez le nombre d'actions effectuées par une macro.
  2. Les macros sont plus adaptées aux opérations répétitives qui doivent être effectuées fréquemment avec peu ou pas de configuration. Pour les autres opérations, envisagez d'utiliser un élément de menu personnalisé plutôt.
  3. N'oubliez pas que les raccourcis clavier des macros doivent être uniques et qu'une feuille donnée ne peut comporter que dix macros avec des raccourcis à la fois. Toutes les macros supplémentaires ne peuvent être exécutées qu'à partir du menu Extensions > Macros.
  4. Les macros qui modifient 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. Il est donc 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

Il existe quelques restrictions concernant ce que vous pouvez faire avec les macros :

Utiliser des macros en dehors des scripts liés

Les macros sont définies dans des scripts liés à des feuilles spécifiques. Les définitions de macros sont ignorées si elles sont définies dans un script autonome ou application Web.

Définir des macros dans les modules complémentaires Google Workspace pour Sheets

Vous ne pouvez pas distribuer de définitions de macros à l'aide d'un module complémentaire Google Workspace pour Sheets. Les définitions de macros dans 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 macros à l'aide de bibliothèques Apps Script .

Utiliser des macros en dehors de Sheets

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