Réaliser des macros avec Excel

    1.   premières macros

      1.   l’enregistreur


Réalisez et testez les macros suivantes :

  1. grasbleuC3_E5 : met en gras et en gras la zone comprise entre C3 et E5.


  1. GrasBleu : met en gras et en bleu la zone sélectionnée.


  1. Cherche : recherche dans une feuille l’élément appelé « truc » (indice : allez voir dans Edition\Rechercher)


  1. AjouteFeuille : ajoute une nouvelle feuille au classeur


      1.   graphique


Faites en sorte que CTRL+MAJ+C permette de construire un graphique en camembert sur une nouvelle feuille à partir des données de la zone A1:E2

      1.   navigation

Ajoutez des boutons en haut de chaque feuille pour revenir automatiquement à la feuille 1.



      1.   encore des macros

Répondez aux points suivants en utilisant des macros

· Ajoutez un bouton à votre feuille. Ce bouton doit permettre d’écrire votre nom en B1 et votre prénom en B2 (en utilisant une macro NomPrenom que vous créerez).

· Faites en sorte que le raccourci CTRL + F permette d’ajouter une feuille à votre classeur.

· Ajoutez en haut des trois premières feuilles de votre classeur des boutons qui vous conduisent directement sur la feuille une



    1.   Soyons concret

      1.   VOYAGE, VOYAGE

La feuille « voyages.xls » permet de gérer (très sommairement) une agence de voyage. La feuille clients contient la liste des clients, la feuille voyages, la liste des voyages en catalogue, la feuille départs, la liste des départs et la feuille membres contient la liste des personnes inscrites à chacun des voyages.

Question 1 : Menu

Réalisez un menu permettant de se promener entre les différentes feuilles. Sur la feuille Menu, on doit trouver un bouton permettant d’aller sur chacune des autres feuilles, sur les autres feuilles, on doit trouver un bouton « menu » permettant de retourner à la feuille Menu.

Question 2 : Nouveau client

Afin d’aider à l’ajout d’un nouveau client, réaliser une macro « InsereClient » qui insère une nouvelle ligne en haut du tableau contenant la liste des clients. Faites de même pour les voyages avec une macro « InsereVoyage ».



      1.   Bonus: MACRO RELATIVES/ABSOLUES

Question 1 : Explication

Jusqu’à présent, nous avons utilisé des macros absolues, c’est-à-dire des macros qui s’exécutent toujours au même endroit. Il est également possible de créer des macros relatives, c'est-à-dire des macros qui vont s’exécuter là où on le désire.

· Réalisons (comme précédemment) une macro Vert1 qui met en vert les cellules entre B2 et D10. Sélectionnons maintenant la plage A1 : B5 et exécutons Vert1.

· Réalisons maintenant une macro Vert2, mais cette fois-ci, nous allons :

o sélectionner la zone B2 :D10 AVANT de commencer l’enregistrement,

o démarrer l’enregistrement de Vert2,

o cliquer sur l’icône qui apparaît à droite du bouton stop dès le début de l’enregistrement,

o appuyer sur le bouton permettant de mettre en vert

o et enfin fermer l’enregistrement.

· Sélectionnez maintenant A1 :B5 et exécutez Vert2. Observez que c’est maintenant bien la zone A1 :B5 qui se met en vert, et non pas B2 :D10.

En résumé, pour enregistrer une macro en mode relative, il faut :

1. Faire la sélection des cellules AVANT de démarrer l’enregistrement

2. Et cliquer sur le bouton « référence relative »

Question 2 : Mise en pratique

Réalisez les macros suivantes :

· Réalisez une macro Gras12 qui permette de mettre en gras, en bleu et en taille 12 la zone sélectionnée. Associez au raccourci CTRL + B et testez

· Réalisez une macro Mult qui met dans la cellule courante la valeur située à gauche de celle-ci multipliée par 100 (à l’aide d’une formule)

· Réalisez une macro GrasDouble qui met en gras la cellule courante et celle située juste en dessous


      1.   PREMIERE UTILISATION DE LEDITEUR

Question 1 : Prise en main

Nous verrons dans la suite que les macros sont en réalité dans un langage informatique : le Visual Basic. L’enregistreur nous fournit un moyen aisé de créer de petites macros « simples », mais lui aussi les écrits dans ce langage. Il est possible de visualiser (et éventuellement de modifier) ce qu’il a créé pour nous.

· Reprenez la macro GrasBleu de l’exercice 1 (refaites la rapidement si vous l’avez égaré). Allez dans le menu Outils/Macro/Macro, sélectionnez la macro GrasBleu et cliquez sur modifier.

· Ne paniquez pas !

· Nous voyons la le contenu de la macro (on dit le code ou plus simplement le programme). Ceci devrait ressembler à :


On peut observer quatre parties :

· Sub GrasBleu() : il s’agit du début de la macro avec son nom

· La partie en vert, dans laquelle toutes les lignes sont précédées d’un apostrophe : il s’agit de commentaires dont Excel ne tient pas compte

· La partie centrale : qui contient le « coeur » de la macro, c’est cette partie là qui dit à Excel ce qu’il faut faire

· Et enfin End Sub qui clôt la macro.

Sans comprendre précisément les détails de cette macro, il nous est possible de la modifier :

· Modifiez GrasBleu de manière à ce que la zone à mettre en Gras et en Bleu soit la zone B3 :B5

Question 2 : Autres manipulations

· Reprenez la macro RechercheTruc, faites en sorte qu’on recherche désormais une cellule contenant le mot bidule

· Reprenez la macro Feuille2, et modifiez la de manière à ce qu’elle aille sur la feuille 1

· Reprenez la macro NomPrenom (exercice 2 ), modifiez les noms et prénoms.




    1.   écrire de petites macros, manipuler les cellules


      1.   La macro infernale


vous exécutez la macro en vous plaçant dans la cellule B1 qui contient 0

Après avoir répondu aux questions, recopiez la macro et testez.



      1.  PETITES MACROS

Répondez aux questions suivantes en réalisant de petites macros dans Visual Basic Editor :



      1.  DES NOUVEAUX CLIENTS POUR LAGENCE

Reprenez la feuille voyages.xls sur laquelle vous avez travaillé lors du précédent TP et répondez aux questions suivantes :


Note : connaissant une cellule, il est possible d’en obtenir une autre par décalage grâce à la propriété offset. On note range("B2")..offset(0,1) par exemple pour faire référence à la cellule à droite de la cellule B2, soit C2 : le premier chiffre étant le décalage en ordonnées (les lignes, ici 0), le second étant le décalage en colonnes (ici 1).



      1.  MODIFICATION DE MACRO

Question 1 : Première tentative

Plutôt que de réécrire une macro à partir de rien, il est parfois plus pratique de créer la macro avec l’enregistreur, puis de modifier la macro obtenue pour la faire correspondre à nos besoins. Faisons un essai.



      1.  FONCTIONS

Un autre type de macros existe. Il s’agit des fonctions. Les fonctions permettent de créer de nouvelles fonctions Excel que l’on pourra utiliser ensuite en plus de celles existantes (comme Somme, Min, Max, …)

Question 1 : Première fonction

Tapez la macro suivante dans l’éditeur de Visual Basic.





Notez les différences suivantes avec une macro « classique »:

Question 2 : Fonctions personnelles

Réalisez les fonctions suivantes :

Question 3 : Arguments

Il est possible dans une fonction de ne mettre aucun argument, ou plusieurs. Testez les deux macros suivantes :





Réalisez les fonctions suivantes :