Débuter en Visual Basic for Applications (VBA)

Noter ce cours :

VBA (Visual Basic for Applications) est un langage de programmation implanté dans les suites Microsoft Office. Il s'agit d'une extension du langage VB (Visual Basic) permettant de réaliser des applications complètes ou simplement de l'automatisation de tâches, comme un exemple que nous avons abordé dans ce tutoriel de création de macro, le code VBA étant visible au travers du second article (tutoriel - lire et interpréter le code d'une macro).

Nous allons commencer par débuter la programmation en VBA sous Excel, mais nous aurions pu commencer avec Word. Nous allons introduire un bouton dans une feuille Excel et avec ce bouton, nous allons faire apparaître une fenêtre (appelée ici UserForm) qui sera la base de l'interface que vous allez créer. Voici à quoi peut ressembler un UserForm de base :

UserForm

Un UserForm de base se caractérise par son absence de contrôles. Un contrôle est un élément sur lequel vous allez pouvoir effectuer une action, que ce soit via l'utilisateur (avec le clavier, la souris ou un autre périphérique) ou directement dans votre code. Par exemple, les boutons ou ascenseurs sont des contrôles. L'userForm n'est donc entre guillemets qu'un conteneur global.

Passons maintenant à la pratique !

Ouvrez un fichier Excel vierge. Cliquez ensuite sur le menu Affichage => Barre d'outils puis sélectionnez l'option Visual Basic.

Affichage des outils Visual Basic

Une barre d'outils apparaît :

Barre d'outils VBA

Un clic sur l'icône symbolisant un marteau et une clé ouvre la boîte à outils qui contient les contrôles que vous allez pouvoir ajouter dans une page Excel et/ou l'UserForm :

Boîte à outils

Gardez-la ouverte car nous en aurons besoin plus tard. Cliquez maintenant sur le petit rectangle (cf flèche rouge ci-dessus) qui représente le bouton que nous souhaitons insérer (un clic sur ce bouton devra faire apparaître un Bouton). Maintenant que vous avez cliqué, passez votre souris sur la feuille Excel. Vous remarquez que le curseur a la forme d'un signe "+". Positionnez le curseur où vous souhaitez (sur la cellule A1 par exemple) puis cliquez. Un bouton sera créé :

Premier bouton

Maintenant que le bouton est créé, il va falloir créer l'UserForm. Pour ce faire, cliquez sur l'icône vba editor. Cette fenêtre apparait :

Editeur de code

Dans la section de gauche, vous devriez voir VBAProject (Classeur 1). Faites un clic droit dessus puis choisissez Insertion => UserForm.

UserForm

Maintenant que tout est créé dans notre application, il ne manque plus que le plus important, à savoir le code ! Dans la partie de droite, vous voyez qu'un morceau de code est déjà présent. Il s'agit de ceci :

Private Sub CommandButton1_Click()

End Sub

Ce code apparaît quand vous double-cliquez sur le bouton que vous avez créé après avoir choisi de vous mettre en mode création via cette icône : Mode création

Transformez maintenant le code que vous voyez comme ceci :

Private Sub CommandButton1_Click()
UserForm1.Show
End Sub

Voici maintenant des explications pas à pas sur le code que nous venons de modifier :

  1. UserForm1 correspond au nom par défaut de l'UserForm que nous avons créé (ce nom peut être modifié par la suite).
  2. .Show correspond au nom de la procédure servant à faire apparaître l'UserForm

Nous avons vu à la page précédente comment créer un UserForm affiché lorsque l'utilisateur cliquait sur un bouton situé sur son classeur Excel. Nous allons maintenant voir comment créer un bouton situé sur l'UserForm et agissant directement sur le classeur. A l'assaut !

Pour commencer, allez chercher l'UserForm que vous avez créé durant la leçon précédente :

UserForm

Cliquez ensuite sur l'insertion d'un bouton dans la boîte à outils :

Boîte à outils

Positionnez ensuite le curseur de la souris sur l'UserForm, à l'endroit où vous souhaitez qu'il soit placé, puis faites un clic avec le bouton gauche de la souris :

UserForm - placement du bouton

Double-cliquez ensuite sur le bouton créé. Une fenêtre d'édition de code s'ouvre :

Editeur de code

Insérez ensuite le code suivant à l'endroit où se situe la flèche :

Range ("A1") = "Bonjour"
UserForm1.Hide

Vous devriez donc vous retrouver si tout va bien avec le code suivant (si votre bouton se nomme ToggleButton1) :

Private Sub ToggleButton1_Click()
Range("A1") = "Bonjour"
UserForm1.Hide
End Sub

Voici quelques explications concernant les lignes que nous venons de taper (les lignes étant exécutées les unes à la suite des autres) :

Vous avez aimé cet article intitulé Débuter en Visual Basic for Applications (VBA) ? Partagez-le !
Vulgarisation-informatique.com
Cours en informatique & tutoriels