C'est quoi VBA ? [#01 FORMATION VBA EXCEL COMPLETE]
Nous nous trouvons ici dans le premier chapitre de la formation VBA Excel d’excelformation.fr. Alors quoi de mieux que de commencer par le début ? Voici donc une présentation de l’outil.
Vous pouvez obtenir le fichier d'exemple de cet article et découvrir la méthode d'apprentissage d'Excel pas-à-pas en cliquant sur le lien suivant :
1. Introduction
VBA, pour Visual Basic for Application est un langage de programmation développé par Microsoft pour automatiser les opérations réalisées au sein des logiciels de la suite Office, et notamment d’Excel.
Grâce à VBA, les possibilités offertes par ces logiciels sont casi-infinies ! Et la bonne nouvelle, c’est que VBA est automatiquement (et gratuitement, ce qui n’est pas négligeable !) inclus dans Excel ! Contrairement au langage Visual Basic qui permet de développer des applications autonomes, les macros développée en VBA sont directement intégrées au sein des documents Office (Excel, Word,…).
VBA va sans problème pouvoir réaliser des tâches comme :
- Importer des données depuis des sources externes,
- Retraiter ces mêmes données,
- Les exporter,
- Modifier la mise en forme des cellules (mettre en gras, changer la police,…)
- Effectuer des contrôles,
- …
Bref, toute ce que vous pouvez imaginer, VBA peut surement le faire, à condition bien sûr que vous soyez en mesure de lui dire comment faire au travers du développement de macros (que l’on appelle également macro-commande), et c’est justement ce que nous allons apprendre dans cette formation !
2. D’où vient le VBA ?
Le VBA (pour rappel il s’agit d’un acronyme pour Visual Basic for Application) est directement dérivé du langage de programmation de Microsoft qu’est le Visual Basic. C’est ce qui explique qu’il réside de grandes ressemblances entre ces deux langages, mais qui est également source de nombreuses confusions !
Historiquement, VBA a été introduit en 1993, dans Excel 5 (jusqu’alors les macros étaient développées en langage XL4). Si au cours des premières années le langage a connu pas mal d’améliorations, celles-ci ont par la suite été beaucoup plus rares. Si bien que de nombreuses macros développées sous Excel 2003 peuvent encore fonctionner sur les dernières versions sans que les conversions ne soient trop lourdes. En revanche l’inverse sera beaucoup plus délicat, notamment en raison des changements de fond opérés au sein d’Excel (passage de 65 536 lignes à 1 048 576,…) et de l’apparition de nouvelles possibilités dans Excel. Nous sommes aujourd’hui à la septième version de VBA, introduite par Office 2010.
3. Qu’est-ce qu’une macro ?
Une macro est un petit programme développé dans le langage VBA et qui va permettre d’effectuer une série d’instruction au sein des logiciels de la suite Microsoft Office.
Le langage VBA est dit typé, ce qui signifie que les variables possèdent un type particulier qui va définir ce que celles-ci vont pouvoir stocker et réaliser. En revanche, il n’est pas obligatoire de définir le type directement dans le code, ce dernier pouvant être affecté de manière dynamique en fonction de l’usage qui est fait de la variable ! Nous reviendrons dans un prochain chapitre sur les différents types de variables (string pour du texte, integer pour un nombre entier, …).
L’environnement de développement des macros est Visual Basic Editor. Nous pouvons accéder à celui-ci en utilisant la combinaison de touches [Alt]+[F11]
4. La logique de hiérarchisation des objets d’applications
À présent, nous allons entrer dans la partie technique de cette présentation de VBA.
En effet, avant de pouvoir commencer à saisir la moindre ligne de code, il est important de bien comprendre la hiérarchisation des objets de VBA.
Toute la logique VBA repose en effet sur une programmation orientée objet. En effet, comme nous l’avons vu plus haut, une macro VBA repose sur une application Office, qui sera l’objet principale de la logique de développement. Puis en découle une hiérarchisation descendante matérialisée par un point (« . ») de séparation et qui peut être schématisée de la manière suivante :
Niveau hiérarchique |
Nom de l’objet |
Information |
0 |
Application |
Il s’agit de l’application hôte de la macro (Excel, Word, …) |
1 |
Workbooks |
Classeur de travail |
2 |
Sheets |
La feuille de calcul |
3 |
Range |
La cellule |
Ainsi, pour modifier la valeur contenue dans la cellule A5 de la feuille de calcul « Test » du classeur « Excelformation.fr - Formation VBA.xlsm », nous procéderons de la manière suivante :
Sub test()
ThisWorkbook.Sheets("Test").[A5] = "Vive le VBA !!"
End Sub
Mais bien heureusement il existe des raccourcis qui vont grandement nous faciliter la vie. En effet, l’objet Application tout d’abord est implicite, dans la plupart des cas, il sera inutile de le préciser.
Ensuite, il existe l’instruction Thisworkbook, qui permet de faire directement référence au classeur dans lequel s’exécute le code !
Il est donc possible de saisir plus simplement :
Sub test()
ThisWorkbook.Sheets("Test").[A5] = "Vive le VBA !!"
End Sub
Vous noterez au passage que l’instruction Value qui permet d’affecter une valeur à une cellule est également implicite, et peut donc être bien souvent omise.
Ensuite, lorsqu’un objet n’est pas précisé, alors VBA utilise par défaut l’objet actif.
Sub test()
[A5] = "Vive le VBA !!!"
End Sub
Dans cet exemple, nous modifions la cellule A5 du dernier classeur sélectionné, et dans la dernière feuille de calcul utilisé. Il faut donc manipuler cette possibilité avec une grande attention, afin de ne pas risquer d’écraser des données existantes !
Il existe évidemment de nombreux autres objets dans VBA (graphiques, images, tableaux croisés dynamiques…).
Et voilà c’est tout pour cette présentation de VBA.
Au cours des prochaines semaines, nous commencerons véritablement le développement en commençant par voir comment activer VBA dans l’interface d’Excel, puis nous créerons notre première automatisation, sans n’avoir besoin de saisir la moindre ligne de code !