Premiers pas en VBA

Dans cette partie, nous allons approfondir les macros : le temps est venu pour vous de personnaliser vos propres bestioles !

Du VBA, pour quoi faire ?

Relisez le chapitre sur les macros. Nous y avons vu qu'une macro est une série d'instructions. Lorsque vous exécutez cette macro, vous exécutez cette série d'instructions.

Cette fameuse série, elle est écrite quelque part dans un code informatique : le VBA, qui signifie Visual Basic pour Application. Le VBA a donc besoin d'une application, en l’occurrence ici Excel, pour fonctionner.

Nous avons vu également que pour accéder à ce code, il fallait appuyer sur Alt + F11 mais… c'est un peu le bazar lorsque nous arrivons sur la fenêtre.

Mais alors, à quoi ça sert, le VBA ?

À coder vos propres macros, pardi ! Il y a en effet des macros que vous ne pourrez jamais faire en faisant travailler l'enregistreur, comme compléter la dernière ligne d'un tableau.
Ça sera à vous de les réaliser ! ;)

L'interface de développement

L'interface de développement, c'est la fenêtre sur laquelle vous tombez lorsque vous appuyez sur Alt + F11 ou encore lorsque vous vous rendez dans l'onglet « Développeur », dans le groupe « Code » et que vous cliquez sur le bouton :

Si vous ne savez plus comment activer l'onglet « Développeur », je vous redirige vers le chapitre précédent.

Nous allons tout d'abord voir comment s'organise un projet et inévitablement, comment fonctionne l'interface de développement.

Un projet, oui mais lequel ?

Là, c'est vous qui décidez. Un projet s'applique en général sur un travail dans le classeur ou dans une feuille de calcul particulière. C'est un groupe de macros, qui s'appellent entre elles, qui échangent avec l'utilisateur…

Vous codez une macro dans ce qu'on appelle un module. C'est comme une feuille blanche dans laquelle vous allez écrire votre ou vos macros.

Bien évidemment, vous pouvez rajouter à votre projet autant de modules que vous voulez. C'est-à-dire que vous pouvez écrire une macro par module, si vous le souhaitez.

Ouvrez MVBA et regardez le menu de gauche :

Chaque mot en gras est un projet. Vous pouvez l'explorer au moyen de la petite croix à gauche de chacun :

Ici, je n'ai en fait qu'un seul projet, les autres étant propres à l'application et protégés par mot de passe. Vous avez tous le même projet : « VBAProject (Classeur1) ». Si votre classeur a pour nom Salariés, votre projet a pour nom « VBAProject (Salariés) ».

Nous allons ajouter un nouveau module qui va vous permettre de coder. rendez-vous dans le menu « Insertion » puis cliquez sur « Module » :

Remarquez l'apparition du dossier Module dans votre projet. C'est ici que seront rangés tous vos modules. Nous allons pouvoir commencer à coder.

STOOOOP ! :-° Et si j'ai 40 modules ? Je vais avoir 40 fichiers dans mon dossier mais s'ils s'appellent Module1, Module2, Module3… je ne vais jamais m'en sortir !

Exact. Cher Zéro, vous soulevez la question du renommage du module, une démarche assez tordue. Soit, je vais vous expliquer comment renommer un module.

Tout d'abord, sélectionnez votre module. :-) Cliquez sur le bouton « Fenêtre Propriétés (F4) » : ça affichera le menu des propriétés du module :

Renommez le module comme à vos envies, puis fermez cette petite sous-fenêtre au moyen de la petite croix. Voilà, vous êtes fin prêts au codage. Petite précision tout de même : pour revenir au tableur depuis MVBA, il faut appuyer sur Alt + F11.

Codez votre première macro !

Dans toute cette seconde partie, nous allons coder en VBA, je pense que vous l'avez compris. Afin d'obtenir la coloration de mes codes d'exemples, j'ai choisi d'écrire ici mes codes entre des balises de coloration pour VB.NET. C'est un langage proche du VBA par sa syntaxe, et c'est pourquoi je m'en sers afin de colorer mes codes (ce qui est plus agréable à lire).

Pour créer une macro, vous pouvez soit faire travailler l'enregistreur de macros, et dans ce cas du code VBA sera généré selon vos désirs, soit la coder à la main. Comme nous sommes sur le Site du Zéro et qu'ici, on est plutôt orienté « code », nous allons… coder. :D

Déclarer sa macro

Une macro porte un nom que vous lui donnez. Les espaces et les accents sont interdits.

  • MAUVAIS = ma première macro.
  • BIEN = ma_premiere_macro.

Chaque macro doit être codée entre les mots-clés Sub et End Sub.

Syntaxe

Voici sans plus tarder la syntaxe d'une déclaration :

1
2
3
4
Sub nom_de_la_macro ()


End Sub

Dans votre éditeur de code, écrivez seulement la première ligne Sub nom_de_la_macro () (en remplaçant « nom_de_la_macro » par ce que vous voulez, tant que ça respecte les règles énoncées ci-dessus ! :-° ) et appuyez sur Entrée : End Sub a été généré tout seul ! ! :)

Par exemple (nom repris du chapitre précédent) :

1
2
3
Sub gras_rouge ()

End Sub

Que s'est-il passé ?

Retournez à votre tableur, et dessinez un objet auquel vous appliquez votre macro (voir chapitre sur les macros).

Que constatons-nous ? Votre macro est reconnue, et ce, sans toucher l'enregistreur ! ! :D

Les commentaires

Dans le code, vous avez la possibilité de placer des commentaires. Ils n'auront aucune influence lors de l'exécution du code et servent simplement à vous repérer.

Un commentaire commence par une apostrophe '. Si vous ne vous êtes pas trompés, le commentaire devrait apparaître en vert.

1
2
3
4
5
6
7
Sub ma_macro()

'Ceci est un commentaire.
'Il sert à vous retrouver dans le code.
'On placera le code de la macro ici. :)

End Sub

Pfiou ! :-° Je crois que vous êtes prêts pour passer au concret. _VBA ...... > OK

Description de l'interface de développement ...... > OK

Organisation du projet ...... > OK

Première macro ...... > OK

Commentaires ...... > OK_

C'est bon, vous pouvez passer à la suite ! :pirate: