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 signifie que vous allez travailler avec des mots-clés spécifiques à Excel.
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)
A la différence d'une référence de cellule dans Excel (A5, B10), en VBA, la ligne est écrite en premier, puis la colonne.
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
Comment débugger un programme VBA
Si vous avez des difficultés à trouver l'origine de vos erreurs en VBA, ce guide va vous expliquer comment utiliser le débuger.
BOSCHER JEAN LUC
15/03/2024 @ 10:46
Bonjour ,
J ai réalisé un système de de gestion de production avec réalisation de fiche de fabrication ,suivi de production avec des macros . Mais mon classeur Excel est depuis un moment très très lent a exécuter les macros et pendant l exécution me marque en haut à gauche Excel ne répond pas !!
Quelqu'un a t il une explication pour mon problème et surtout comment le résoudre . .
Je suis sous Excel 2019 Edition familiale
Merci d'avance
Jean Luc
DJELLOULI
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.
No
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