Dans Excel, vous pouvez concevoir de véritable programme informatique grâce aux macros VBA.
Tous les programmes informatiques, sont construit de la même façon
- des variables (pour stocker des valeurs intermédiaires)
- des tests pour comparer 2 éléments ou 2 valeurs
- et enfin 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

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.

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 😉
08/02/2022 @ 17:47
Bonjour, je suis comptable et je voudrais apprendre comment ça fonctionne un formule macro sur tableau d'excel des amortissements.
Cordialement.
23/07/2023 @ 21:06
Voici un simple exemple de programmation :
Sub btnCalculateEMI_Click()
Dim monthly_rate As Single, loan_amount As Double, number_of_periods As Single, emi As Double
monthly_rate = Range("B6").Value / Range("B5").Value 'interest rate / no of payments per year
loan_amount = Range("B3").Value 'loan amount
number_of_periods = Range("B4").Value * Range("B5").Value 'loan term * no of payments per year
emi = WorksheetFunction.Pmt(monthly_rate, number_of_periods, -loan_amount)
Range("B9").Value = emi
End Sub