Réalisez et testez les macros suivantes :
grasbleuC3_E5 : met en gras et en gras la zone comprise entre C3 et E5.
GrasBleu : met en gras et en bleu la zone sélectionnée.
Cherche : recherche dans une feuille l’élément appelé « truc » (indice : allez voir dans Edition\Rechercher)
AjouteFeuille : ajoute une nouvelle feuille au classeur
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
Ajoutez des boutons en haut de chaque feuille pour revenir automatiquement à la feuille 1.
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
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 ».
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
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.
vous
exécutez la macro en vous plaçant dans la cellule B1
qui contient 0
vous exécutez la macro en vous plaçant dans la cellule A1 qui contient 1
vous exécutez la macro en vous plaçant dans la cellule A2 qui contient 5
Après avoir répondu aux questions, recopiez la macro et testez.
Répondez aux questions suivantes en réalisant de petites macros dans Visual Basic Editor :
Ecrivez une macro qui place la valeur 30 dans la cellule active
Réalisez une macro qui affiche dans une boîte de dialogue (Msgbox) le contenu de la cellule active.
Réalisez une macro qui écrit « bonjour » dans les cellules A1, A2, B1 et B2, et qui affiche ensuite « bonjour » dans une boîte de dialogue.
Réalisez une macro qui place le contenu de la cellule A1 dans la cellule A2, puis dans la cellule A3 et qui l'affiche ensuite avec une boite de dialogue.
Réalisez une macro qui multiplie par deux la valeur de la cellule courante.
Réalisez une macro qui échange la valeur de la cellule A1 et de la cellule B2.
(Indice : on sera obligé d’utiliser une troisième cellule).
Réalisez une macro qui place le contenu de la cellule A1 de la feuille 2 sur la cellule A1 de la feuille 1.
Reprenez la feuille voyages.xls sur laquelle vous avez travaillé lors du précédent TP et répondez aux questions suivantes :
Créez une macro Aide qui affiche dans une boîte de dialogue le message suivant : « Pour modifier un client, sélectionnez son numéro, cliquez sur éditer, modifier ses informations, puis appuyez sur Enregistrer ». Associez à un bouton aide dans la feuille clients
Réalisez le formulaire d’inscription d’un nouveau client (feuille Formulaire Client). Pour cela, mettez en forme la feuille et réalisez une macro qui va insérer une nouvelle ligne à la feuille client (en haut du tableau) et qui va ensuite copier les informations de la feuille Formulaire Client à la feuille Clients. (Note : pour insérer une ligne, on pourra récupérer la macro InsérerClient réalisée lors du TP 1). Associez la macro à un bouton « Enregistrer » sur la feuille Formulaire Client
Même question pour la feuille Formulaire Voyage
Même opération dans l’autre sens : réalisez une macro qui permet, si on a choisi un client en sélectionnant son code, de recopier ses informations sur la feuille formulaire client. La macro terminera en ouvrant la feuille clients. On associera cette macro à un bouton « Editer » dans la feuille clients.
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).
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.
Recréez la macro GrasBleu du TP 1 (elle doit mettre en gras et en bleu la zone A1 :B3). 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 à :
Excel
a donc écrit le code d’une
macro qui, nous le savons, sélectionne la zone entre A1 et
B3, la met en gras, puis en bleu. Nous retrouvons ici tous ces
éléments. Sans forcément 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 (à la place de A1
:B3)
Question 2 : Autres manipulations
Recréez la macro RechercheTruc (qui recherche une cellule qui contient le mot Truc), faites en sorte qu’on recherche désormais une cellule contenant le mot bidule
Recréez
la macro NomPrenom
(qui
affiche votre nom en B1 et votre prénom en B2), modifiez les
noms et prénoms.
Question
3 : De nouvelles macros
Réalisez les macros suivantes :
Highlight : une macro qui, à l’aide d’une mise en forme conditionnelle, met en gras et en bleu toutes les cellules contenant le mot Truc. Modifiez cette macro pour qu’elle mette en gras et bleu les cellules contenant le mot Machin
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 »:
Le mot clé Function est employé à la place de Sub
Après le nom de la macro, entre parenthèse, un mot (quelconque) est indiqué. Il s’agit d’une variable (nous y reviendrons dans le prochain TP). Notez simplement que vous pouvez lui donner le nom de votre choix, et que cette variable correspond à la cellule qui contient la valeur qui va servir pour notre calcul.
La
fonction se termine lorsqu’on lui donne une valeur (ici on
donne une valeur à TVA)
Allez dans votre feuille de
calcul. En A1, notez 10, en A2, notez comme formule =TVA(A1).
Observez. Notez en A3 =TVA(10). Observez
Question 2 : Fonctions personnelles
Réalisez les fonctions suivantes :
Franc : prend comme valeur une somme en euros et la convertie en franc
Carré : donne le carré d’une valeur
Somme:
affiche la somme de la valeur donné en argument et de la
cellule A1
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 :
SommeA : indique la somme de A1, A2, A3 et A4
Evolution : indique le pourcentage d’évolution entre deux valeurs
Conversion : étant donné un taux de conversion et une somme dans une monnaie, donne la valeur dans une autre monnaie (ex : conversion(10 ; 6,55) doit donner la valeur de 10 euros en francs)