Accueil | Ce site | CV | Excel | Livre d’or | Macros XL4 | Modèles | VBA

 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 :

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.