★ À maîtriser
Le VBA, créé par Microsoft dans les années 90, est une extension de Visual Basic intégrée à une application hôte.
Le VBA permet d’étendre les fonctionnalités de l’application dans laquelle il est intégré.
Compléments
Jusqu’en 1997, le VBA était disponible uniquement dans les applications de la suite Microsoft Office, notamment Excel, Word et Access.
LibreOffice dispose d’un langage intégré proche du VBA, nommé LibreOffice Basic, et le cours emploie « VBA » pour désigner les deux langages.
Microsoft Office d’abord, puis d’autres applications
★ À maîtriser
Compléments
Le VBA est un langage interprété, ce qui le rend assez lent.
Le VBA ne distingue pas les majuscules des minuscules.
📌 Avec Option Explicit, toute variable doit être déclarée avant son utilisation.
📌 Une variable locale déclarée dans une macro n’est utilisable que dans cette macro, tandis qu’une variable globale déclarée au début d’un module est visible par toutes les macros de ce module.
La variable change, la constante reste fixe
★ À maîtriser
📌 L’entrée standard permet de lire des informations au clavier, tandis que la sortie standard affiche des informations à l’écran.
Compléments
En VBA, une instruction s’écrit généralement par ligne et ne se termine pas par un point-virgule.
Le caractère souligné « _ » indique qu’une instruction VBA continue sur la ligne suivante.
En VBA, un commentaire commence par une apostrophe et se termine à la fin de la ligne.
📐 Formule - Le périmètre d’un cercle de rayon se calcule par .
★ À maîtriser
📌 Un même motif binaire peut représenter des données différentes selon leur type, comme 01001101 qui représente l’entier 77 ou le caractère M.
Les types Byte, Integer et Long occupent respectivement 1, 2 et 4 octets et représentent respectivement les plages 0 à 255, −32 768 à 32 767 et −2 147 483 648 à 2 147 483 647.
Single occupe 4 octets et Double 8 octets; le cours indique respectivement 6 et 10 chiffres significatifs pour ces types réels.
Compléments
Un octet contient 8 bits, et la mémoire peut être représentée comme des positions binaires adressées.
String peut contenir jusqu’à 65 536 caractères, Boolean occupe 2 octets et Date occupe 8 octets.
★ À maîtriser
Les opérateurs arithmétiques du VBA comprennent +, −, *, /, ^, \ et Mod; ^ correspond à la puissance, \ à la division entière et Mod au reste.
Les opérateurs de comparaison du VBA sont =, <>, <, >, <= et >=, et les opérateurs logiques comprennent And, Or et Not.
Compléments
L’opérateur & concatène les chaînes de caractères et Like compare une chaîne à un modèle.
Les caractères génériques de Like sont :
Pour convertir une chaîne en nombre, IsNumeric vérifie d’abord qu’elle correspond à un nombre, puis Val effectue la conversion.
★ À maîtriser
If...Then exécute un bloc seulement si la condition est vraie, tandis que If...Then...Else choisit entre un bloc si la condition est vraie et un autre si elle est fausse.
ElseIf enchaîne des tests conditionnels, tandis que Select Case associe des blocs à des valeurs, des listes ou des plages de valeurs.
La boucle For répète un bloc avec un compteur allant d’une valeur de départ à une valeur finale, éventuellement selon un pas.
Do While évalue sa condition de continuation avant chaque itération, tandis que Do...Loop Until évalue sa condition de sortie après chaque itération.
Compléments
While teste avant, Until teste après
★ À maîtriser
Un tableau à une dimension se déclare avec Dim Nom_tableau(ind_min To ind_max) As Type et ses éléments s’accèdent par NomTableau(indice).
En VBA, un tableau à deux dimensions se déclare avec deux intervalles d’indices et un élément s’accède par NomTableau(indice_ligne, indice_colonne).
Compléments
📌 Les opérateurs standards du VBA ne permettent pas de recopier, comparer ou sommer directement des tableaux, et les fonctions d’entrée-sortie ne lisent ni n’affichent toutes leurs valeurs en une seule instruction.
Une ligne d’éléments devient une matrice avec un second indice
★ À maîtriser
Compléments
📌 L’affectation globale entre deux variables de type structuré est autorisée en VBA.
Une fiche regroupe des champs de types différents
★ À maîtriser
📌 En VBA, les macros sont des procédures ou des fonctions et il n’existe pas de programme principal, car elles sont exécutées depuis leur application hôte.
📌 Une fonction VBA déclare un type de valeur de retour et affecte cette valeur au nom de la fonction, tandis qu’une procédure Sub n’a pas de valeur de retour.
Compléments
📌 Les paramètres effectifs d’une fonction doivent correspondre en nombre et en type aux paramètres formels.
📌 L’appel d’une procédure ne peut pas être placé à l’intérieur d’une expression.
La fonction retourne une valeur, la procédure exécute des actions
★ À maîtriser
📌 Un paramètre passé par valeur avec ByVal est une copie locale dont les modifications ne sont pas répercutées sur l’argument effectif.
📌 Un paramètre passé par référence avec ByRef répercute sur l’argument effectif les modifications réalisées dans le sous-programme.
Compléments
ByRef est le mode de passage des paramètres par défaut en VBA.
Un tableau peut être transmis à une procédure pour être affiché avec ByVal ou lu et modifié avec ByRef.
ByVal isole, ByRef répercute
★ À maîtriser
📌 Le mode Input ouvre un fichier en lecture, Output l’ouvre en écriture en écrasant son contenu s’il existe, et Append l’ouvre en ajout à la fin.
📌 Un programme qui manipule un fichier doit encadrer cette manipulation par une ouverture avec Open et une fermeture avec Close.
Compléments
📌 Write écrit les données en format structuré avec les chaînes entourées de guillemets dans le fichier, tandis que Print effectue une écriture formatée sans cette précision.
FreeFile, Open, lecture ou écriture, Close
★ À maîtriser
📌 Une propriété décrit une caractéristique ou un état d’un objet, tandis qu’une méthode correspond à une action effectuée sur cet objet.
Compléments
Propriété décrit, méthode agit, événement déclenche
★ À maîtriser
📌 Sous Calc, ThisComponent désigne le classeur actif; sous Excel, ActiveWorkbook désigne le classeur actif.
📌 Sous Calc, les numéros de ligne et de colonne commencent à 0, tandis que sous Excel ils commencent à 1.
Compléments
Sous Calc, une cellule peut être référencée par getCellByPosition(num_colonne, num_ligne) ou getCellRangeByName(nom_cellule).
Sous Excel, une cellule ou une plage se référence avec Range(nom_cellule) ou Cells(num_ligne, num_colonne).
Sous Calc, la collection Sheets permet notamment de sélectionner, insérer, supprimer et vérifier l’existence d’une feuille, tandis que sous Excel les feuilles sont manipulées avec ActiveSheet et Worksheets.
Calc indexe à partir de 0, Excel à partir de 1
★ À maîtriser
Sous Calc, un formulaire défini dans DialogLibraries peut être créé avec CreateUnoDialog, puis affiché avec Execute et libéré avec dispose.
Sous Excel, un formulaire peut être affiché avec Show et retiré de la mémoire avec Unload.
📌 Sous Calc, le résultat de dlg.Execute() permet de distinguer les boutons OK et Annuler à l’aide de ExecutableDialogResults.OK; sous Excel, le cours utilise une variable booléenne OK définie par les gestionnaires des boutons.
Compléments
Pour transférer les champs d’un formulaire vers des cellules, le programme récupère les valeurs des zones de texte après validation et les affecte aux cellules correspondantes.
Les zones de liste du cours permettent d’ajouter ou de supprimer des éléments, de récupérer l’élément sélectionné et de connaître le nombre d’éléments.
Afficher, lire les contrôles, reporter les valeurs, fermer
| Élément | Calc | Excel |
|---|---|---|
| Classeur actif | ThisComponent | ActiveWorkbook |
| Départ des indices | 0 | 1 |
| Référence de cellule | getCellByPosition(colonne, ligne) | Cells(ligne, colonne) |
| Feuilles | Collection Sheets | ActiveSheet et Worksheets |
| Mode | Modification répercutée | Mot-clé |
|---|---|---|
| Par valeur | Non | ByVal |
| Par référence | Oui | ByRef, mode par défaut |
Teste tes connaissances sur Programmation en VBA avec 39 questions à choix multiples et corrections détaillées.
1. Quelle est l’origine du VBA et comment s’intègre-t-il à une application ?
2. Une équipe souhaite ajouter des fonctionnalités à l’application qu’elle utilise en automatisant certaines tâches avec du VBA. Quel rôle du VBA correspond à cet objectif ?
Mémorisez les concepts clés de Programmation en VBA avec 81 flashcards interactives.
Qui a créé le VBA, et à quelle décennie remonte sa création ?
Microsoft l’a créé dans les années 90.
Comment le VBA s’intègre-t-il à une application hôte ?
Il constitue une extension de Visual Basic intégrée à cette application.
Que permet le VBA dans l’application où il est intégré ?
Il permet d’en étendre les fonctionnalités.
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches