Christian MUIR

Macro

Dernière modification : 09 mars 2009

Vous êtes ici : Accueil >> Tableur >> Approfondissement >> Macro-commande
Approfondissement

Travailler avec plusieurs sources

Simuler des résultats

Rechercher des solutions

Automatiser des manipulations ou des calculs

Une macro est une série de commandes et de fonctions stockées dans un module Microsoft Visual Basic, qui peut être exécutée chaque fois que vous devez accomplir cette tâche.

extrait de l'aide de Microsoft Excel

Préalables

Barre d'outils Visual Basic

Pour pouvoir lancer et arrêter facilement l'enregistrement des macros, il peut être utile d'afficher la barre d'outils Visual Basic (Affichage / Barres d'outils / Visual Basic), voire même de la placer de manière permanente à côté d'une des barres d'outils classiques, comme la barre Mise ne forme.

Attach:macro01.png Δ

Ses 4 premiers boutons seront particulièrement utiles (de gauche à droite)

  • Exécuter une macro
  • Enregistrer une macro (qui deviendra Arrêter l'enregistrement)
  • Sécurité
  • Visual Basic Editor

Niveau de sécurité

Pour que les macros soient utilisables, on aura intérêt à définir le niveau de sécurité sur Moyen.

  • Cliquer sur le bouton Sécurité dans la barre d'outils Visual Basic.
  • Sélectionner le niveau de sécurité Moyen.

Ainsi à l'ouverture d'un classeur Excel contenant une macro, on aura l'invite suivante :

Attach:macro02.png Δ

En fait, ce niveau de sécurité est utile surtout pour que des fichiers téléchargés soient testés avant d'être ouverts pour savoir s'ils contiennent des macros, celles-ci pouvant éventuellement contenir des virus de macro..

Création d'une macro

En fait, enregistrer une macro va consister à demander à Excel d'enregistrer toutes les manipulations qui vont être faites entre le moment où l'on clique sur Enregistrer une macro et celui où on clique sur Arrêter l'enregistrement. Autrement dit, on a intérêt à être sûr de ses manipulations avant de lancer l'enregistrement ;-)

  • Cliquer sur Enregistrer une macro dans la barre d'outils Visual Basic
  • Une fenêtre de dialogue de ce type apparaît :

Attach:macro03.png Δ

  • Donner un nom à la macro (sans espace ni apostrophe)
  • Éventuellement choisir une combinaison de touches utilisable comme raccourci pour lancer la macro (utile si la macro doit être lancée souvent et que l'on est susceptible de se souvenir de ce raccourci !)
  • Choisir l'endroit où sera enregistrée la macro
    à partir du moment où la macro est très souvent liée au contenu, l'enregistrer dans le classeur semble le plus logique
  • Éventuellement, écrire une description indiquant le rôle de la macro
  • Valider

Attention : dès que l'on a validé l'enregistrement commence !

  • Effectuer les manipulations
  • Cliquer sur Arrêter l'enregistrement dans la barre d'outils Visual Basic

Exécution de la macro

1ère méthode

  • Cliquer sur le bouton Exécuter une macro dans la barre d'outils Visual Basic
  • Une fenêtre de dialogue de ce type apparaît :

Attach:macro04.png Δ

  • Sélectionner la macro dans la liste
  • Cliquer sur le bouton Exécuter

2ème méthode

On va créer un bouton auquel on va affecter la macro

  • Afficher la barre d'outils Formulaires
  • Cliquer sur le contrôle Bouton
  • Dessiner la forme du bouton sur la feuille de calcul
  • Dès que l'on lâche le bouton de la souris après avoir dessiné la forme du bouton, une fenêtre de dialogue comme celle-ci apparaît :

Attach:macro05.png Δ

  • Sélectionner la macro qui sera lancée par la bouton
  • Valider
  • Renommer le bouton

Modification d'une macro

Appel du Visual Basic Editor

  • Cliquer sur le bouton Exécuter une macro dans la barre d'outils Visual Basic
  • Une fenêtre de dialogue de ce type apparaît :

Attach:macro04.png Δ

  • Sélectionner la macro dans la liste
  • Cliquer sur le bouton Modifier

Les macros apparaissent

Attach:macro06.png Δ

Décryptage d'une partie du code

Range("A1:E51").Sorttri de la plage A1:E51
Key1:=Range("B2")clé du tri = cellule B2
Order1:=xlAscendingordre du tri = croissant

Si l'on modifie le code Order1:=xlAscending en Order1:=xlDescending, le tri se fera dans l'ordre décroissant


Powered by PmWiki
Licence Creative Commons