
Voir article précédent sur Excel 5.0 paru dans le Flash informatique numéro 3 ainsi que l¹article de François Roulet pour l¹installation d¹Excel 5.0 sur PowerMac.
Avec la version 5.0 d¹Excel PC et Mac est apparu un nouvel outil de création de «macros», ces petits programmes écrits par l¹utilisateur généralement pour automatiser les tâches répétitives. Visual Basic for Applications, puisque c¹est de lui qu¹il s¹agit, après avoir timidement pointé son nez dans Word pour Windows 2.0, puis plus sérieusement dans MS-Access, arrive dans le fameux tableur de Microsoft.
Adaptation de l¹environnement de développement VISUAL BASIC, Visual Basic for Applications remplace officiellement et définitivement l¹ancien jeu d¹instructions assez primitives utilisé jusque là dans Excel. Rappelons que tous ces langages macros sont des langages interprétés, c¹est-à-dire qu¹ils ne permettent pas de développer un programme indépendant (sous forme d¹exécutable et de librairies): le programme doit forcément être lancé à l¹intérieur du logiciel qui a servi à le créer (en l¹occurrence Excel).
Régulièrement, le Coin des Curieux, proposera des astuces et des conseils aux développeurs débutants ou confirmés, sans suivre un ordre particulier. Si vous avez vous-même expérimenté certains problèmes, découvert une fonction intéressante ou écrit une macro d¹intérêt général (ou simplement amusante), n¹hésitez pas à nous en faire part (tél. 021.320 29 66) et nous publierons votre texte avec plaisir dans la mesure du possible.
retour à la table des matières

retour à la table des matières

Cette facilité se révèle très pratique au début mais devient rapidement une source d¹erreurs difficiles à repérer dans des macros importantes : en effet, il suffit que le nom d¹une variable soit orthographié différemment (un caractère suffit !) à deux endroits d¹une procédure pour que VBA considère qu¹il s¹agit de deux variables distinctes et initialise la deuxième au lieu de conserver la valeur de la première. Ce type d¹erreur ne provoque évidemment pas de réaction de la part du débogueur intégré !
Déclarer explicitement les variables en début de module ou de procédure ne vous protège néanmoins pas de ce genre d¹incidents : en effet, une variable déclarée, par exemple, sous le nom «TotalVentes» dans la section de déclaration ne sera pas reconnue sous le nom «TotalVente» dans votre code ! Pour forcer VBA à vérifier la déclaration préalable de toute variable, insérez l¹instruction «Option ForceDcl» («Option Explicit» en anglais). Dès lors, toute variable non déclarée dans ce module provoquera un message d¹erreur de la part du débogeur à l¹exécution. Si vous désirez étendre cette sécurité à tous vos futurs modules, choisissez la commande «Options» du menu «Outils», activez la page «Module» et cochez la case «Déclaration de variables».
retour à la table des matières
sur la ligne suivant la déclaration de procédure (Proc ...). Si votre macro se compose de plusieurs procédures s¹appelant entre elles, seule la première exécutée nécessite cette instruction. En demandant ainsi à VBA de ne pas s¹occuper du rafraîchissement de l¹écran durant l¹exécution, on obtient un gain de rapidité assez considérable.
Attention : si le déroulement de votre macro nécessite une intervention de l¹utilisateur à un moment donné, par exemple pour introduire des données dans une cellule, réactivez la mise à jour de l¹écran à l¹aide de l¹instruction «Application.MiseAJourEcran = Vrai» juste avant ... puis désactivez-la à nouveau.
article paru dans le Flash informatique, numéro 6 du 27 juin 1995