Cours de Programmation VBA

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 19

Cours de programmation VBA

Chapitre I : Présentation du langage VBA


Chapitre II : création d’un programme et Les éléments de base du langage
Chapitre III : Les structures de contrôle (structures conditionnelles)
Chapitre IV : gestion des bd par des objets ADO

Chapitre I : Présentation du langage VBA


1. Introduction
Visual Basic pour Applications, ou VBA, est un langage de programmation qui permet
d'automatiser des tâches et de créer des applications complètes qui tirent profit de
l'environnement de Windows. VBA est le langage de programmation de Microsoft Visual Basic
et des applications Microsoft Office 97 et ultérieures : Word, Excel, Power Point et Access,
c'est-à-dire de toutes les applications Microsoft Office.
Nous allons voir qu’on peut mémoriser une suite d’opérations dans un environnement (Excel,
Access…) pour pouvoir répéter cette suite ultérieurement sans avoir à refaire les commandes.
Ces commandes sont des macros.
Le VBA (Visual Basic for Applications) est un langage proche du Visual Basic qui est l’outil
de programmation des macros nécessitant une application hôte pour s'exécuter (Excel par
exemple). Des macros existent et peuvent être exécutées de manière automatique mais avec
moins de finesse.
Le langage VBA en est la suite logique et permet d'aller beaucoup plus loin, tout en permettant
à celui qui le veut de se cantonner à l'enrichissement des macros obtenues via l'enregistreur de
macros disponible dans certaines applications. On pourra citer VBA pour Word, VBA pour
Excel, VBA pour Access.
On manipule ces objets par programmation à l’aide de leurs propriétés (teinte d'une couleur par
exemple), leurs méthodes (ajout d'un élément par exemple) et leurs événements (réaction à un
clic de souris par exemple). VBA permettra de développer des applications, des interfaces avec
le reste d'Office, des interfaces avec différents type de données…
VBA = Langage Visual Basic (VB) simplifié pour MS Office

2. Lancement de VBA sous Excel


Excel VBA (Visual Basic pour Application) est un langage de programmation permettant
d’utiliser du code Visual Basic pour exécuter les nombreuses fonctionnalités de l’Application
EXCEL.
Si vous utilisez la version une version supérieure à 2007 d'Excel, cliquez sur

Fichier > Options > Personnaliser le Ruban puis cochez "Développeur".

L’écran suivant s’ouvre

Puis cochez "Développeur" et le bouton OK.


Alors un nouvel onglet sera ajouté :

Pour faire de la programmation VBA, nous avons besoin de l’éditeur VBA, celui-ci est déjà
installé. Vous pouvez l'ouvrir avec :
 L’onglet Développeur > groupe Contrôle > Visualiser le code
 Le raccourci "Alt F11" :
Les macros peuvent être placées dans plusieurs endroits, soit dans les feuilles du classeur soit dans un
module pour l’ensemble des feuilles du classeur.
La fenêtre de l’Éditeur VBA apparaît

Pour VBA, un classeur et l’ensemble de ses macros forme un « projet ». L’arborescence de votre projet
doit se terminer par une rubrique Modules.
Chapitre II : Création d’un programme et les éléments de base du langage
1. Création d’un programme
L’objectif est de créer une macro qui sélectionnera une cellule ou plusieurs cellules.
Pour pouvoir créer des macros propres à ses besoins, efficaces et interactives, il faut apprendre
à programmer en VBA.
Nous allons ajouter un nouveau module à l'éditeur VBA qui va vous permettre de coder.
Dans l’onglet Insertion > Module Puis double cliquer ou dans le menu déroulant

Dans le module, tapez la procédure "sub exemple" et appuyez sur Entrée


On obtient
Sur la feuille Excel, nous allons créez maintenant un bouton de formulaire auquel nous allons
associer cette macro pour le moment vide.

Dans l’onglet Développeur > groupe Contrôles > Insérer

En déposant le bouton de commande sur la feuille de calcul d’Excel ou dans un formulaire, on


obtient la fenêtre suivante

Cliquer sur exemple pour associer la macro au bouton ou taper exemple puis enregistrer
Compléter maintenant le code dans l’éditeur.
Vous pouvez tester cette macro en cliquant sur votre bouton de formulaire, la cellule A8 est
alors sélectionnée.
TP1

Créer une macro qui permettra de sélectionner les cellules A2 et D5.


Créer une macro qui permettra de sélectionner la plage de cellules A2 à D5
Nous allons maintenant trouver des propriétés pour agir sur le contenu et l'apparence des
cellules et des feuilles.
Pour afficher la liste des possibilités que l'on peut associer à l'objet Range, ajoutez un point
après Range ("A8") :

L'éditeur affiche alors les différentes possibilités


Par exemple
La propriété Value est ici le contenu de la cellule.

La propriété ClearContents pour effacer le contenu de la cellule

La propriété Font pour la mise en forme de la cellule


Après avoir ajouté Font., la liste des propriétés que l'on peut attribuer à la mise en forme du
texte apparaît
La propriété Size permet de modifier la taille
Sub proprietes()
'Modifier la taille du texte de la cellule A8
Range("A8").Font.Size = 18
End Sub
La propriété Bold permet de faire la mise en forme en gras si elle est à TRUE
Sub proprietesBold()
'Mettre en gras le contenu de la cellule A8
Range("A8").Font.Bold = True
End Sub

La propriété Italic permet de faire la mise en forme en italique si elle est à TRUE
Sub proprietesItalic()
'Mettre en italique le contenu de la cellule A8
Range("A8").Font.Italic = True
End Sub

2.
L

es éléments de base du langage VBA


2.1. Les variables et types de variable
2.1.1. Variables
En programmation, une variable est un nom qui sert à repérer un emplacement
mémoire par l’ordinateur pour stocker une information. Les variables permettent de stocker
toutes sortes de données. On peut faire évoluer sa valeur au fil du déroulement du programme.
On donnera aux variables des noms évocateurs des informations qu’elles désignent. Ces noms
sont appelés des identificateurs.
Par exemple, montant est certainement un meilleur choix que x pour désigner le
montant d’une facture et nom pour désigner le nom d’une personne ou un objet.

2.1.2. Les types de variable


Chaque sorte d’information devra disposer d’un codage approprié, on parle de type d’une
variable. Lorsque l’ordinateur alloue un espace en mémoire, il tient compte du type de la
variable pour déterminer la taille de l’espace à réserver.

Un type est en fait un ensemble d’opérations permettant de manipuler les objets.

Le
tableau ci-dessous résume le type de variable utilisé.
2.1.3. Déclaration des variables
La déclaration de variable explicite est très simple.
On a la syntaxe suivante :
Dim ma_variable [As type]
Pour déclarer une variable, on écrit en premier Dim. Vient ensuite le nom de notre variable qu'il
faut un minimum explicite, mais pas non plus une phrase. Enfin, le type de la variable. Il est ici
entre crochets puisqu'il n'est pas obligatoire. S'il n'est pas indiqué, la variable est de type
Variant par défaut.

Exemples
 Dim nbEntier As Integer 'pour nombre entier
nbEntier = 12345

 Dim nbVirgule As Single 'pour nombre à virgule


nbVirgule = 123.45
 Dim varTexte, Message As String 'pour une chaine ou du texte
varTexte = "Excel-Pratique.com"
 Dim varDate As Date 'pour la date
varDate = "06.02.2011"
 Dim varBoolean As Boolean ' pour le booléen (vrai/faux)
varBoolean = True
 Dim varFeuille As Worksheet 'pour un objet (objet Worksheet)
Set varFeuille = Sheets("Feuil2") 'Set => attribution d'une valeur à une
variable objet

Remarque
Ces deux déclarations ci-dessous sont identiques.
Dim exemple As Integer
Dim exemple%
2.1.4. Commentaires et affectation
 Le caractère ' est utilisé pour définir un commentaire. Tout le texte qui suit ce caractère
n'est pas compilé.
 Le symbole d’affectation est =

 Les symboles + et underscore ("_") permettent d’écrire une instruction sur plusieurs
lignes.

2.1.5. Les opérateurs de comparaison


Nous avons des opérateurs que nous pourrons utiliser :
3. Programmation VBA
Dans le cadre de la programmation objet, la démarche consiste en la création d'un certain
nombre d'objets. Chaque objet définit des attributs (propriétés) et des méthodes
comportements).
Dans Excel, un objet peut être un classeur, les feuilles de calcul, un graphique, etc.
Les variables Object sont stockées sous forme d'adresses codées sur 32 bits (4 octets).
VBA est un langage de programmation orientée objet attaché à une application. Tout est
objet.
Exemple d’objets :
 un classeur est un objet Workbook ;
 une feuille de calcul est un objet Worksheet ;
 une plage de cellules (qui peut se limiter à une cellule) est un objet Range.
L'instruction Set permet d'attribuer une référence d'objet à la variable.
3.1. Propriétés des objets
Chaque objet est défini par un ensemble de propriétés, qui représentent les caractéristiques de
l’objet. Pour faire référence à une propriété d’un objet donné, il faut utiliser la syntaxe
suivante :
Objet.Propriété.
Exemples :
La propriété Value de l’objet Range désigne la valeur de l’objet spécifié.
Range("A1").Value = "Inphb" affecte la valeur inphb à la cellule A1.
La propriété ActiveCell de l’objet Application renvoie un objet Range, qui fait référence à la
cellule active de la feuille de calcul.
ActiveCell.Font.Bold = True permet d’affecter le style gras à la cellule sélectionnée (Font est
une propriété de l’objet Range qui retourne un objet Font contenant les attributs de police
(taille, couleur, style, ...) de l’objet Range.
Bold est une propriété booléenne de l’objet Font qui correspond au style gras).
Worksheets("Sheet1").Cells(4, 1).Value, Pour récupérer le contenu d'une case,
3.2. Méthodes des objets
Les méthodes représentent les actions qui peuvent être effectuées par un objet ou que l'on peut
appliquer à un objet.
Pour faire référence à une méthode d’un objet donné, il faut utiliser la syntaxe
Objet.Méthode
Exemple :
La méthode Select de l’objet Range permet de sélectionner une cellule ou une plage de cellules.
Range("A1").Select sélectionne la cellule A1.

3.3. Exemple de programme


Nous voulons écrire un programme qui réalise les traitements suivants :
 affiche le message "Bonjour M. KOFFI" dans la cellule B3 ;
 met en forme le texte avec la police Algerian, Taille 12, couleur rouge ;
 agrandit la largeur de la colonne B3 automatiquement.
 Rend A1 cellule active
Pour faire cette programmation, nous avons besoin de comprendre quelques propriétés et
méthodes utiles.
 Accéder à une cellule : Range ("B3").Value = "Bonjour M. KOFFI"
‘ Place la valeur "Bonjour M. KOFFI" à la cellule B3, la propriété Value est ici le contenu de
la cellule.
 Dim maFeuille As Worksheet
‘ Déclaration de variable maFeuille comme feuile de calcul (fichier excel)
Set maFeuille = ThisWorkbook.Worksheets("Salutation")
‘Affecter à la feuille de calcul la feuille nommée salutation
‘Affecter à la cellule (B3), la valeur "Bonjour M. KOFFI"
MaFeuille.Cells(3, 2) = "Bonjour M. KOFFI"
 Rendre un feuille cellule active : Range("B3").Select

Nous allons ouvrir un classeur Excel puis nommée la feuil1 : salutation


Créons ensuite un module appelé module2 et un bouton de commande sur la feuille ou une
procédure salutation.
Dans l’éditeur de code du module, nous tapons le code suivant :
Numéros de couleurs

En cliquant sur le bouton 2,


on obtient
TP2

Nous voulons écrire une macro qui réalise les traitements suivants :

 affiche le message "Bonjour, Je suis étudiant à INPHB" dans la cellule C5 ;


 met en forme le texte avec la police Calibri (corps), Taille 14, couleur rouge ;
 agrandit la largeur de la colonne C5 automatiquement.
 Rend C6 cellule active
 Le bouton de commande sera placé dans un formulaire non sur la feuille de calcul

TP3

Nous voulons écrire une macro qui permet de :

 sélectionner la plage " B4:B8" déjà remplie,


 copier cette sélection
 la coller dans la cellule D4
 enfin sélectionner la cellule D10

Chapitre III : Les structures de contrôle


1. Les structures conditionnelles
Dans les programmes, les instructions sont exécutées séquentiellement c'est-à-dire dans ’ordre
où elles apparaissent. On appelle instruction de contrôle toute instruction qui permet de
contrôler le fonctionnement d’un programme. Les conditions sont très utiles en programmation,
elles nous serviront à effectuer des actions en fonction de critères précis.
1.1. Structure conditionnelle simple
Cette structure s’exécute de manière conditionnelle. La principale fonction est If et de Syntaxe
suivante:
if(condition1) then
Instruction1
End If
if(condition2) then
Instruction2
End If
La condition1 est évaluée, si elle est vraie instruction1 est exécutée sinon rien n’est exécuté.
Ensuite la condition2 est évaluée, si elle est vraie instruction2 est exécutée sinon rien.
Exemple :
Sub MacroTestVariable()
valeur = Range("A1").value
If valeur >= 12 And valleur <= 20 Then
Range("B1").value = " Admission OK"
If valeur < 12 Then
Range("B1").value = " Ajournée"
End Sub

1.2. Une structure conditionnelle complète


Dans cette partie le choix se fait à 2 niveaux avec le if suivi de else. L’exécution est faite de la
manière suivante :
If (CONDITION ) Then 'SI condition validée ALORS
instruction1 'Instructions si vrai
Else 'SINON
instruction2 'Instructions si faux
End If
Si condition est vraie alors instruction1 est exécutée,
Si elle est fausse alors instruction2 est exécutée.
Exemples
Sub MacroTestDialogue()
Dim reponse As String
reponse = InputBox("Quel age avez-vous ?", "Saisie age")
If reponse = "" Then
MsgBox("Vous n'avez pas répondu à la question !", , "Erreur")
Else
MsgBox("Vous avez " & reponse & " ans", , "Age")
End If
End Sub
Sub comparaison()
Dim a, b, r As Single
Range("B2").Value = 4
Range("C2").Value = 7
a = Range("B2").Value
b = Range("C2").Value
If a = b Then
Range("D2").Value = "Les deux nombres sont egaux"
Else
If a > b Then
Range("D2").Value = a & " > " & b
Else
Range("D2").Value = b & " > " & a
End If
End If
End Sub

2. Les boucles
2.1. While
L'itérative ou l’itération est une structure qui permet l'exécution d'une action ou d'une séquence
d'actions tant qu'une condition est vérifiée. Les structures TantQue sont employées dans les
situations où l’on doit procéder à un traitement systématique sur les éléments d’un ensemble dont
on ne connaît pas d’avance la quantité.
Si la condition est vraie, les instructions dans actions sont exécutées. Puis, on retourne tester une
nouvelle condition. Dans le cas contraire (condition bascule à faux), l'itération est terminée. On dit
alors que l'on sort de la boucle. La condition est toujours évaluée avant de faire le traitement (la
condition est d’abord testée).

Syntaxe:
Sub boucle_while()
While [condition]
'Instructions
Wend
Exemple:
Sub boucle_while()
Dim numero As Integer
numero = 1 'Numéro de départ(correspond ici au n° de ligne et au n° de numérotation)
While numero <= 12 'TANT QUE la variable numéro est <= 12, la boucle est répétée
Cells(numero, 1) = numero 'Numérotation
numero = numero + 1 'Le numéro est augmenté de 1 à chaque boucle
Wend
End Sub
2.2. For
2.3. Do …Loop

Chapitre IV Les entrées et sorties standards

1. La fonction InputBox
La fonction InputBox est une boite de dialogue permettant à l’utilisateur de saisir du texte ou
des valeurs numériques. Elle permet d’entrer des données pour l’exécution du programme.
Syntaxe :
Variable = InputBox("message","Titre de la boite","Valeur par défaut")

Description des arguments :


 message : message qui s’affiche dans la boite de dialogue ; seul paramètre
obligatoire ;

 Titre : le texte qui apparaitra dans la barre de titre ;


 valeur par defaut : c’est la valeur (de type string) qui sera proposée par défaut
dans la boite de dialogue

Exemple :
Nous voulons permettre à l’utilisateur de saisir son prénom au clavier.
Sub saisir()
Dim Reponse As String
Reponse = InputBox("Entrez votre prénom")
Range("A1") = Reponse
End Sub
En exécutant la macro, la fenêtre suivante s’ouvre et attend la donnée à saisir

2. La fonction MsgBox

La fonction MsgBox affiche un message dans une boite de dialogue.


Syntaxe :
MsgBox(Message, Bouton, Titre).

Exemple :
Nous voulons afficher le message « Votre nom est KOFFI »

En exécutant la macro la fenêtre suivante s’ouvre


Chapitre V : gestion des bd par des objets ADO

Vous aimerez peut-être aussi