Extrait du cours les macros complémentaires avec Excel
Macros, présentation
Excel intègre dorénavant un langage de programmation, VBA, qui permet de réaliser des applications puissantes et conviviales, allant bien au-delà ce que qu’évoque le terme de macro (cf. l’historique ci-dessous). Malheureusement, parmi les utilisateurs d’Excel, presque personne n’en est conscient.
Historique
Une macro est un terme générique pour désigner un moyen de mémoriser un enchaînement de tâches au sein d’un logiciel.
Il est ensuite possible d’utiliser la macro – l’expression standard est “lancer la macro” – pour répéter le même enchaînement. Plusieurs méthodes peuvent être employées pour lancer une macro :
- On peut associer un raccourci clavier à la macro.
- L’application peut comporter une commande provoquant l’affichage de la liste des macros disponibles. Il suffit alors de choisir celle que l’on veut lancer et de valider.
- Il est parfois possible également d’afficher un bouton, éventuellement situé dans une barre d’outils. Un simple clic sur le bouton provoque l’exécution de la macro.
Dans la majorité des cas, les macros ne permettent de réaliser que des choses très simples, par exemple la mise en page d’un document (orientation et marges) dans un traitement de texte. Les macros sont alors des programmes automatiques. Dans ce contexte, il est parfois possible d’accéder au code de la macro, c’est-à-dire au programme, pour modifier tel ou tel paramètre. Cette option améliore les choses, mais les possibilités restent cependant limitées.
En tant qu’outil de programmation, ces macros manquaient à la fois de souplesse et de puissance. C’est pourquoi les informaticiens les ont toujours considérées avec condescendance.
Ce type de macros a tout de même rendu service a un certain nombre d’utilisateurs, grâce au temps gagné.
Macros et tableurs
Lotus 1,2,3 a probablement été le premier tableur comportant des macros. Celles-ci étaient relativement puissantes, mais leur lecture difficile, car chaque instruction était un code de 3 ou 4 lettres, éventuellement complété de paramètres.
J’ai eu l’occasion de voir des macros réalisées avec Lotus, mais je n’en ai jamais utilisée ni a fortiori écrite. Toutefois, je pense que leur syntaxe et l’emploi de code abscons devaient limiter leur usage et leur maintenance.
Excel est sorti en 1985. La première version tournait sur Mac exclusivement, nécessitait 512 Ko et tenait sur une disquette. Mais, merveille, il y avait un langage macro relativement puissant et lisible.
On était encore loin d’un langage de programmation classique : il manquait en particulier la possibilité de créer des menus et des zones de dialogue, et les structures classiques de boucles.
Malgré ces limitations, l’outil était suffisamment puissant pour que j’ai pu créer et commercialiser en 1987, toujours avec la version 1.0 d’Excel, une application commerciale, Mac Bilan, qui complétait les logiciels de compta (à l’époque Maestria et Gestion Simil).
Mac Bilan permettait à partir d’une balance (la liste des comptes d’une entreprise avec leurs soldes) d’établir le bilan, le compte de résultat et le détail des postes.
En outre, un certain nombre de contrôles comptables étaient effectués, et il était possible de saisir des écritures complémentaires à prendre en compte pour le bilan.
Le tout avec Excel 1.0 !
Macros XL4 et VBA
Ce langage macro, a évolué au fil des versions d’Excel jusqu’à la version 4.0 (d’où son nom actuel de macros XL4) et est devenu de plus en plus puissant, en conservant malgré tout un positionnement un peu bâtard :
Trop intimement lié à Excel, et trop différent des langages classiques, il n’a jamais réussi à surmonter la condescendance de l’immense majorité des informaticiens. D’autre part, acquérir une maîtrise de ce langage macro, suffisante pour réaliser des applications utilisables par des tiers, demandait à un non informaticien de formation, une motivation et un investissement en temps considérable. La plupart de ceux qui ont essayé n’avaient pas les capacités nécessaires ou se décourageaient trop tôt.
Le résultat est que très peu de gens étaient capables d’employer ce langage pour autre chose que des tâches très simples.
À partir d’Excel 5, le langage macro initial a cessé d’évoluer et a été concurrencé par un autre langage, également intégré à Excel, VBA.
VBA est un langage informatique relativement classique, orienté objet. Depuis Excel 97/98, il comporte un environnement spécifique, avec des outils de déboguage.
Ces différents éléments l’ont rendu beaucoup plus populaires que l’ancien langage. Certains utilisateurs de VBA considèrent que le terme de macro est réducteur et souhaitent même qu’on l’évite.
Qu’est-ce qu’une macro ? À quoi cela peut-il servir ?
…….
Je me contenterai, ici, de répondre aux seules questions qui sont posées ci-dessus.
- La macro complémentaire, dans Excel, est un code écrit en VBA.
- Elle sert à exécuter automatiquement une tâche dans Excel.
Les macros sont souvent utilisées pour des actions répétitives et longues à faire.
Pour que vous ayez une bonne idée des possibilités offertes, je vais vous faire faire un petit TP.
Je vous fournis donc le fichier de base et nous travaillerons dessus.
Récupérez ce fichier : comptes.xls
Afin de colorer un peu plus le code, j’ai utilisé les balises-codes du VB.NET et non celles du VBA, qui sont inexistantes.
Je précise bien que le VB.NET n’a rien à voir avec le VBA.
Sommaire du tutoriel :
- L’écriture d’une macro
- L’assistant création de macros
- Lier une macro à un objet
- Quelques exemples de macros
L’écriture d’une macro
Je vais en premier lieu vous montrer la façon la plus compliquée de créer une macro.
Pour cela, il faut avoir certaines bases en VBA.
Le but de ce tutoriel n’est pas de vous apprendre le Visual Basic. Il s’agit simplement de vous en montrer quelques caractéristiques avant de poursuivre.
Cela vous sera utile au cas où vous seriez amenés à modifier une macro manuellement.
On va commencer par créer une macro qui nous permet de calculer la somme des dépenses.
Pour cela, ouvrez le fichier que vous avez téléchargé.
……….
Les macros complémentaires avec Excel avec quelques exemples (682.25 KB) (Cours DOC)