Fiche de révision : Programmation en VBA

Plan du Cours

  1. Origines et usages du VBA
  2. Organisation des macros
  3. Variables et constantes
  4. Instructions et entrées-sorties
  5. Types de données du VBA
  6. Opérateurs et conversions
  7. Alternatives et boucles
  8. Tableaux à une et deux dimensions
  9. Structures et champs
  10. Fonctions et procédures
  11. Passage des paramètres
  12. Manipulation des fichiers texte
  13. Objets et événements
  14. Objets des classeurs et cellules
  15. Formulaires et contrôles utilisateur

1. Origines et usages du VBA

★ À 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.

Astuce mémo

Microsoft Office d’abord, puis d’autres applications

2. Organisation des macros

Notions clés & Définitions

  • Macro : Programme écrit en VBA.

★ À maîtriser

  • Les macros sont stockées dans des modules et ne peuvent être exécutées que depuis l’application pour laquelle elles ont été écrites.

Compléments

  • Le VBA est un langage interprété, ce qui le rend assez lent.

  • Le VBA ne distingue pas les majuscules des minuscules.

3. Variables et constantes

Notions clés & Définitions

  • Variable : Objet stocké en mémoire dont le contenu peut être modifié pendant l’exécution du programme.

Points essentiels

📌 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.

Astuce mémo

La variable change, la constante reste fixe

4. Instructions et entrées-sorties

★ À 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 rr se calcule par P=2πrP = 2\pi r.

5. Types de données du VBA

★ À 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.

6. Opérateurs et conversions

★ À 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 :

    • ? : un caractère quelconque
      • : une suite quelconque de caractères
    • : un chiffre de 0 à 9

    • [liste] : un caractère présent dans la liste
    • [!liste] : un caractère absent de la liste
  • Pour convertir une chaîne en nombre, IsNumeric vérifie d’abord qu’elle correspond à un nombre, puis Val effectue la conversion.

7. Alternatives et boucles

★ À 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

  • Exit For interrompt une boucle For et Exit Do interrompt une boucle Do While ou Do...Loop Until.

Astuce mémo

While teste avant, Until teste après

8. Tableaux à une et deux dimensions

Notions clés & Définitions

  • Tableau : Suite d’éléments de même type stockés consécutivement en mémoire et désignés par un identificateur unique, chaque élément étant repéré par un indice.

★ À 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

  • Le nombre d’éléments d’un tableau unidimensionnel est ind_max+1−ind_minind\_max + 1 - ind\_min.

📌 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.

Astuce mémo

Une ligne d’éléments devient une matrice avec un second indice

9. Structures et champs

Notions clés & Définitions

  • Structure : Type structuré qui regroupe dans une même variable des informations connexes appelées champs, lesquels peuvent être de types différents.

★ À maîtriser

  • On accède à un champ d’une structure avec la notation variable.champ, par exemple noelAnneeDerniere.annee.

Compléments

  • Un type structuré se définit en VBA avec Type, des déclarations de champs, puis End Type.

📌 L’affectation globale entre deux variables de type structuré est autorisée en VBA.

Astuce mémo

Une fiche regroupe des champs de types différents

10. Fonctions et procédures

★ À maîtriser

  • Les sous-programmes ont un nom, leurs propres variables, un début et une fin, et peuvent recevoir des paramètres pour échanger des informations avec le programme appelant.

📌 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.

Astuce mémo

La fonction retourne une valeur, la procédure exécute des actions

11. Passage des paramètres

★ À 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.

Astuce mémo

ByVal isole, ByRef répercute

12. Manipulation des fichiers texte

★ À maîtriser

  • En VBA, un fichier ouvert est manipulé via un numéro entier obtenu avec FreeFile, qui renvoie le premier numéro de fichier inutilisé.

📌 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.

  • Input # lit des données formatées depuis un fichier et affecte les valeurs lues aux variables indiquées.

Astuce mémo

FreeFile, Open, lecture ou écriture, Close

13. Objets et événements

Notions clés & Définitions

  • Objet : Variable permettant généralement d’accéder aux éléments d’Excel ou de Calc, comme un classeur, une feuille ou une cellule.
  • Événement : Signal déclenché automatiquement en réponse à une opération de l’utilisateur, auquel une macro peut être associée pour s’exécuter automatiquement.

★ À 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

  • Les objets de même type sont regroupés dans des collections.

Astuce mémo

Propriété décrit, méthode agit, événement déclenche

14. Objets des classeurs et cellules

★ À 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.

Astuce mémo

Calc indexe à partir de 0, Excel à partir de 1

15. Formulaires et contrôles utilisateur

★ À 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.

Astuce mémo

Afficher, lire les contrôles, reporter les valeurs, fermer

Tableaux de synthèse

Différences d’indexation et de références

ÉlémentCalcExcel
Classeur actifThisComponentActiveWorkbook
Départ des indices01
Référence de cellulegetCellByPosition(colonne, ligne)Cells(ligne, colonne)
FeuillesCollection SheetsActiveSheet et Worksheets

Modes de passage des paramètres

ModeModification répercutéeMot-clé
Par valeurNonByVal
Par référenceOuiByRef, mode par défaut

Teste tes connaissances

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 ?

Faire le QCM →

Révisez avec les flashcards

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.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches