Contexte
Visual Basic for Applications (VBA) permet d'étendre les capacités de Microsoft Access au-delà des formulaires, requêtes et macros intégrées. Que vous souhaitiez valider des saisies, générer des rapports sur mesure ou enchaîner des opérations répétitives, l'écriture de code VBA dans un module standard constitue le point de départ le plus courant.
Étape 1 : insérer un module standard
Un module standard regroupe des procédures disponibles pour l'ensemble de la base de données, contrairement aux modules de classe ou aux modules de formulaire qui sont liés à un objet particulier.
- Ouvrez l'éditeur VBA avec Alt + F11.
- Dans le menu Insertion, choisissez Module.
- Un nouveau module vide apparaît dans l'explorateur de projets.
Étape 2 : définir une fonction
Une fonction est une procédure qui renvoie un résultat. Pour la déclarer, utilisez le mot-clé Function suivi d'un nom explicite.
Function CalculerPerimetre() As Integer
' Le corps de la fonction sera ajouté ici
End Function
Étape 3 : ajouter une logique à la fonction
À l'intérieur de la fonction, ajoutez les instructions qui accomplissent le traitement souhaité. L'exemple suivant demande une valeur à l'utilisateur, effectue un calcul simple et affiche le résultat.
Function CalculerPerimetre() As Integer
Dim longueur As Integer
Dim largeur As Integer
Dim resultat As Integer
longueur = InputBox("Saisissez la longueur :")
largeur = InputBox("Saisissez la largeur :")
resultat = 2 * (longueur + largeur)
MsgBox "Le périmètre vaut : " & resultat
CalculerPerimetre = resultat
End Function
Étape 4 : exécuter la fonction depuis l'éditeur
Placez le curseur à l'intérieur de la fonction et apuyez sur F5. VBA exécute alors la procédure en mode interactif et affiche les boîtes de dialogue définies dans le code.
Étape 5 : déclarer des variables
Les variables servent de conteneurs temporaires pour les données. La déclaration explicite évite les erreurs de type et facilite la maintainance.
Dim anneeCourante As Integer
Dim nomClient As String
Dim tauxTVA As Double
Activez l'option Option Explicit en début de module pour forcer la déclaration de chaque variable.
Étape 6 : affecter des valeurs
L'opérateur = permet de stocker une valeur dans une varible. Cette valeur peut provenir d'une saisie utilisateur, d'un calcul ou d'une propriété d'objet.
anneeCourante = Year(Date)
nomClient = InputBox("Nom du client :")
tauxTVA = 0.2
Étape 7 : compiler le projet
La compilation vérifie la syntaxe et transforme le code source en instructions exécutables par l'ordinateur. Elle détecte les fautes de frappe, les types incompatibles et les appels de procédures inexistantes.
- Dans l'éditeur VBA, sélectionnez le menu Débogage.
- Cliquez sur Compiler le projet (le nom du projet s'affiche à la place des x).
Étape 8 : enregistrer le module
Sauvegardez régulièrement votre travail pour éviter toute perte de code. Dans l'éditeur VBA, utilisez le raccourci Ctrl + S ou le menu Fichier > Enregistrer.
Étape 9 : appeler la fonction depuis une macro Access
Les procédures placées dans un module standard sont accessibles depuis n'importe quel emplacement de la base de données, y compris une macro.
- Sous l'onglet Créer, cliquez sur Macro.
- Ajoutez l'action ExécuterCode (RunCode).
- Dans l'argument Nom de fonction, saisissez
CalculerPerimetre(). - Exécutez la macro pour vérifier le comportement.
Étape 10 : poursuivre la montée en compétence
Une fois les fondamentaux assimilés, approfondissez les notions suivantes : gestion des événements sur les formulaires, manipulation d'objets DAO et ADO, création de boucles For...Next et Do...Loop, gestion des erreurs avec On Error, et interaction avec les autres applications Office via les bibliothèques d'objets. Lire la documentation officielle et reproduire des scénarios concrets reste le meilleur moyen de progresser.