Accueil | Ce site | CV | Excel | Livre dor | Macros XL4 | Modèles | VBA
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. lhistorique ci-dessous). Malheureusement, parmi les utilisateurs dExcel, presque personne nen est conscient.
Une macro est un terme générique pour désigner un moyen de mémoriser un enchaînement de tâches au sein dun logiciel.
Il est ensuite possible dutiliser la macro lexpression 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 :
Dans la majorité des cas, les macros ne permettent de réaliser que des choses très simples, par exemple la mise en page dun document (orientation et marges) dans un traitement de texte. Les macros sont alors des programmes automatiques. Dans ce contexte, il est parfois possible daccéder au code de la macro, cest-à-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 quoutil de programmation, ces macros manquaient à la fois de souplesse et de puissance. Cest 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é.
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.
Jai eu loccasion de voir des macros réalisées avec Lotus, mais je nen ai jamais utilisée ni a fortiori écrite. Toutefois, je pense que leur syntaxe et lemploi 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 dun 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, loutil était suffisamment puissant pour que jai pu créer et commercialiser en 1987, toujours avec la version 1.0 dExcel, une application commerciale, Mac Bilan, qui complétait les logiciels de compta (à lépoque Maestria et Gestion Simil).
Mac Bilan permettait à partir dune balance (la liste des comptes dune 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 !
Ce langage macro, a évolué au fil des versions dExcel jusquà la version 4.0 (doù 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 na jamais réussi à surmonter la condescendance de limmense majorité des informaticiens. Dautre 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é navaient 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 demployer ce langage pour autre chose que des tâches très simples.
À partir dExcel 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 lont rendu beaucoup plus populaires que lancien langage. Certains utilisateurs de VBA considèrent que le terme de macro est réducteur et souhaitent même quon lévite.