Cours Apps Script : première macro

Avant de commencer à écrire une macro, intéressons-nous à l'enregistreur de macros de Google Sheets pour mieux comprendre son utilité et ses limites.

Cette fonctionnalité permet d'enregistrer vos actions et de créer automatiquement une macro équivalente.


Enregistrer une macro

Dans un nouveau document Google Sheets, entrez des valeurs quelconques dans les 3 premières cellules de la ligne 1 :

google sheets cellules premiere macro

Ajoutez une seconde feuille :

google sheets ajouter feuille premiere macro

Entrez des valeurs quelconques dans les 2 premières lignes :

google sheets cellules c2 premiere macro

Et retournez sur la première feuille.

Cliquez maintenant sur Extensions > Macros > Enregistrer une macro :

google sheets enregistrer macro png premiere

Nous allons faire comme si nous voulions ajouter les données des 3 cellules de la première feuille à la suite de celles de la seconde feuille.

Effectuez les actions suivantes :

Puis cliquez sur Enregistrer :

google sheets enregistreur macro premiere

Et nommez-la "exemple" :

google sheets enregistreur macro nom premiere

Vous pouvez ensuite retrouver votre macro dans le fichier macro.gs qui a été ajouté dans l'éditeur (actualisez la page si macro.gs n'est pas affiché) :

google sheets premiere macro png

Rassurez-vous, vous n'avez pas besoin de comprendre ce code (qui n'est d'ailleurs pas très lisible).

Assigner une macro

Il existe différentes méthodes pour déclencher l'exécution d'un script (et nous en verrons d'autres plus loin dans ce cours). Pour cet exemple, cliquez sur Insertion > Dessin :

google sheets dessin png premiere macro

Et ajoutez une forme de votre choix :

google sheets dessin bouton premiere macro

Personnalisez la forme et ajoutez du texte si vous le souhaitez.

Vous pouvez aussi insérer une image (de bouton par exemple) directement sur la feuille et utiliser cette image à la place d'utiliser l'outil Dessin.

Après avoir inséré la forme sur la feuille, sélectionnez-la, cliquez sur les trois points à droite, puis sur Assigner le script :

google sheets bouton assigner script premiere macro

Et entrez le nom du script choisi lors de l'enregistrement :

google sheets assigner script premiere macro

Autorisation

Essayez de lancer la macro en cliquant sur le bouton.

Une fenêtre s'affiche alors, car la première fois que vous exécutez une macro dans un nouveau classeur, vous devez l'autoriser :

google sheets autorisation macro premiere

Cliquez sur Continuer puis sur votre compte :

connexion premiere macro

Puis sur Paramètres avancés en bas à gauche :

connexion parametres avances premiere macro

Et sur Accéder à Première macro (non sécurisé) un peu plus bas :

connexion parametres avances 2 premiere macro

Pour terminer, cliquez sur Autoriser :

connexion parametres avances 3 premiere macro

Exécuter une macro

Pour ce test, entrez 3 valeurs différentes dans les cellules A1 à C1 et lancez la macro en cliquant sur le bouton :

google sheets bouton premiere macro

Le script va alors s'exécuter, répéter toutes les actions enregistrées et terminer sur la première feuille.

Si vous retournez sur la seconde feuille, vous pourrez voir que le script a effectué exactement les mêmes actions et collé les 3 valeurs à la ligne 3 comme précédemment (par-dessus les données précédentes) :

google sheets cellules a3 premiere macro

Si vous pensiez que la macro allait ajouter les données à la suite, ce n'est pas le cas. L'enregistreur ne peut servir que pour des actions simples et répétables à l'identique (comme par exemple la suppression du contenu d'une plage de cellules).

De plus, l'enregistreur ajoute toutes sortes d'actions inutiles, telles que l'activation des feuilles (alors que la macro pourrait très bien insérer les données sur la seconde feuille sans changer de feuille, et plus rapidement).

Nous verrons d'ailleurs plus loin dans ce cours comment insérer des données sur une autre feuille à la suite, et vous verrez que le code est bien plus simple que celui généré par l'enregistreur.

En attendant, il est bon d'avoir testé au moins une fois l'enregistreur de macros ... Et peut-être qu'un jour il vous dépannera lorsque vous ne saurez pas comment appliquer par exemple des bordures rouges à des cellules (vous pourrez alors enregistrer une macro et rechercher la méthode utile dans la macro générée).