Comprendre les macros VBA

Temps de lecture 3 minutes

Dans Excel, vous pouvez concevoir un véritable programme informatique grâce aux macros VBA.

Les macros VBA sont un vrai language de programmation.

Une macro, ce n'est pas comme formule Excel.

Dans ce site

  • Je vous explique un problème à résoudre avec une formule d'Excel
  • Le problème vous est détaillé au travers d'un exemple
  • Je vous donne la formule (ou l'outil) pour résoudre le problème.
  • Vous, vous copiez la formule dans vos classeurs et ça fonctionne 😃

Pour une macro, ce n'est pas la même logique. Tous les programmes informatiques, mais TOUS, sont construit de la même façon

  • avec des variables (pour stocker des valeurs intermédiaires)
  • des tests pour comparer 2 éléments ou 2 valeurs
  • des boucles pour réaliser des répétitions d'exécution

Macros ou VBA ?

Les termes sont aujourd'hui équivalent. Une recherche sur le net avec l'un ou l'autre de ces termes va vous renvoyer systématiquement vers des lignes de codes.

A l'origine de l'informatique, les applications donnaient la possibilité d'enregistrer des tâches ou des actions au travers de macro-commandes. Le terme macro est resté pour indiquer qu'un programme conçu par un utilisateur va exécuter des actions.

VBA est la contraction de Visual Basic for Application. Dans Office (et pas seulement Excel), le langage de programmation retenu c'est le Visual Basic. Seulement, les termes utilisés par Excel (cellules, feuille de calcul, plage de données, ...) sont spécifiques à Excel. Dans Access ou Word, ces termes ne veulent rien dire.

Donc le A de VBA indique que des mots-clés spécifiques à l'application ont été développés dans le langage Visual Basic.

Comprendre un programme en VBA

Le Visual Basic Editor

Les macros VBA s'écrivent dans le Visual Basic Editor. Pour l'ouvrir, il vous suffit d'appuyer sur les touches Alt + F11

Présentation du Visual Basic Editor

L'éditeur de macros s'ouvrent dans un programme à part.

Ecrire le code dans des procédures

Pour s'exécuter, une macro doit être écrite dans une procédure (subroutine en anglais avec comme diminutif Sub)

Sub MonProgramme()
   ' Votre code ...
End Sub

Comment se code une cellule ?

Une cellule se code de la façon suivante

Cells(numéro ligne, numéro colonne)

Ca peut être un peu déroutant car pour les références dans Excel, c'est la colonne qui est énoncée en premier : A5, B10, C32, ...

Mais il est aussi possible de coder une cellule ou une plage de cellules avec des références "en dur" (qui ne vont jamais bouger) comme

  • Range("A1")
  • ou encore Range("B6:AF13") à la fin du code pour indiquer que le programme va travailler sur les cellules entre B6 et AF13

C'est quoi une variable ?

Une variable c'est un élément du code qui va voir sa valeur changer.

De plus, une variable doit respecter un certain type de données pour préserver l'intégrité d'un programme. On ne peut pas ajouter des nombres avec du texte par exemple.

Dans le cas du calendrier automatique, nous allons remplacer le paramètre de la colonne d'une cellule par une variable. De ce fait, il sera possible de parcourir les cellules qui contiennent le 29, 30 et 31e jour avec la même ligne de code.

C'est quoi une boucle ?

En informatique, une boucle correspond à la répétition d'une même action jusqu'à atteindre une valeur ou une condition pour arrêter la séquence.

Par exemple, avec le code suivant, nous allons répéter 10 fois l'action de mettre une valeur dans les cellules de A1 à A10

For i = 1 To 10
   Cells(i, 1) = i
Next

C'est quoi un test dans un programme informatique ?

Un test dans un programme, c'est la même chose que pour la fonction SI dans Excel.

Un test logique est réalisé entre 2 éléments et selon le résultat (Vrai ou Faux), un branchement est réalisé vers le test Vrai ou vers le test Faux.

Par exemple, le code suivant test le contenu de la cellule D5 et affiche un message en conséquence.

If Cells(5, 4) = 8 Then
   MsgBox "La cellule D5 contient la valeur 8"
Else
   MsgBox "La cellule D5 est différente de 8"
End if

Livre recommandé

Pour tous les articles de ce site, j'ai essayé d'écrire des exemples concis pour les lire en 1 ou 2 minutes. Mais expliquer la logique des macros en si peu de temps ce n'est pas possible.

Il faut vraiment du temps pour comprendre la logique des macros et aussi il faut du temps pour pratiquer. Un simple copier/coller d'un bout de code ne suffit pas.

Par contre, j'ai pris le temps de vous expliquer la technique de programmation des macros dans ce livre.

Livres Macro et langage VBA

Je peux comprendre que l'achat d'un livre ne vous intéresse pas mais si vous souhaitez concevoir des classeurs avec des macros élaborées, le meilleur moyen c'est de se procurer cet ouvrage et d'apprendre les techniques de programmation.

Bonne lecture 😉

Articles complémentaires

Voici une liste d'articles qui pourrait également vous intéresser sur le même thème.

Lien Permanent pour cet article : https://www.excel-exercice.com/comprendre-les-macros-vba/

Laisser un commentaire

Your email address will not be published.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.