Vous êtes sur la page 1sur 65

PROGRAMMATION VBA

GID
Département de Mathématiques et Informatique
Faculté de Sciences – Université de Douala
Semestre 1
Année académique : 2023/2024
M. YNSUFU ALI
OBJECTIFS
 Acquérir une compréhension des concepts fondamentaux de la
programmation VBA tels que les variables, les types de données, les
structures de contrôle (boucles et conditions) et les fonctions.

 Se familiariser avec l'environnement de développement intégré (IDE) de VBA

 Se familiariser avec la syntaxe de programmation VBA

 Manipuler les objets et collections Excel en utilisant VBA.

 Créer des macros simples pour automatiser des tâches en Excel

 Créer les Interfaces graphiques et gérer les évènements


Contenu/Plan
I. Présentation de VBA et son utilisation dans Excel.
II. Présentation de l’environnement du développement intégré(IDE) de VBA
III. Les bases de la programmation VBA
- Variables
- Types de données et opérateurs
- Structures de contrôle (boucles, conditions, sélections)
IV.Macros et automatisation
V. Modules
VI.Procédures et fonctions
VI. Manipulation des données sur Excel
VII. Création des Forms et gestion d’évènements
Contenu/Plan

Le cours sera à la fois théorique et pratique


Prérequis
- Base de l’algorithme
- Base de Microsoft Excel
Présentation de VBA
 Microsoft Excel est un outil extrêmement puissant qui nous permet de
manipuler, d’analyser et de présenter des données.
 Malgré la richesse de l’ensemble des fonctionnalités fournies par l’interface
utilisateur standard d’Excel, nous souhaiterons trouver une méthode plus
simple pour l’exécution d’une tâche banale répétitive ou pour effectuer
une tâche non fournie par l’interface utilisateur.
 Heureusement, les applications Office (Word, Excel, Powerpoint) disposent
de Visual Basic pour Applications (VBA), un langage de programmation
qui donne la possibilité d’étendre ces applications.
 VBA (Visual Basic pour Applications) est un langage de programmation
dédié principalement aux applications Microsoft Office. Il est basé sur le
langage Visual Basic, mais ne peut s’exécuter que dans une application
hôte Microsoft Office, et non de manière autonome.
Présentation de VBA
 Nous définirons tout d’abord la programmation comme l’art d’écrire des
programmes et nous dirons qu’un programme est une suite d’instructions.
 Un algorithme est la description de la suite des opérations élémentaires
ordonnées capables de résoudre le problème posé.
 Un programme est la traduction d’un algorithme en un langage
compréhensible par l’ordinateur.
 Depuis Excel 97, un éditeur Visual Basic réside sous Excel et permet d’écrire
des programmes complexes.
 VBA, Visual Basic for Applications, le langage utilisé peut être vu comme
l’application d’un langage, Visual Basic.
 Il ne faut pas confondre a priori le langage Visual Basic, qui est un langage
complexe indépendant, à VBA qui est uniquement manipulé sur les outils
Microsoft office
L’éditeur VBE
 Pour écrire le programme VBA, on utilise l’éditeur VBE
 VBE : Visual Basic Editor
 Vous pouvez écrire et modifier du code Visual Basic for Applications (VBA)
à l’aide de l’outil Visual Basic Editor (VBE) de Microsoft Excel. Le VBE peut
être utilisé pour ajouter des fonctionnalités, automatiser des processus et
écrire des fonctions personnalisées à utiliser dans les feuilles de calcul Excel.
 Pour utiliser l’outil VBE dans Excel, procédez comme suit :
 - Lancez votre document Excel.
 - Activez l’onglet Développeur.
 - Vous devrez peut-être activer l’onglet Développeur si vous ne
le voyez pas.
L’éditeur VBE
- Pour ce faire, sélectionnez Développeur dans le menu déroulant
sous Fichier > Options > Personnaliser le ruban.
 - Cliquez sur le bouton Visual Basic dans l’onglet développeur.
 - L’éditeur Visual Basic se lance alors. En utilisant les différents outils
et fenêtres du VBE, vous pouvez écrire et modifier du code VBA à partir de
cet endroit.
 - si Visual basic est activé, vous pouvez utiliser le raccourci ALT+F11
 lancer VBE

CAS PRATIQUE 1

Activation de l’environnement de développement


VBE sur Excel

Découvrir VBE

Prise en main

Création d’un bloc programme


Les bases de la programmation VBA
Les Variables
Les variables permettent de stocker toutes sortes de données.
Pour déclarer une variable, on utiles le mot clé Dim suivi du nom de
variable et de son type
syntaxe: Dim NomVariable As Type
 Exemple : Dim MaVariable As Integer
Les Variables
Apres avoir déclaré une variable, on affecte cette variable une
valeur
Exemple : Dim Age as As Integer
Age=17
Dim Nom As String
Nom= "Bilong"
Dim dateNaissance As Date
dateNaissance = "03/12/2023"
Les Types de donnée

Le type de données d’une variable spécifie le type de données


que la variable peut stocker.
Vous spécifiez le type de données d’une variable en incluant le
mot clé As
S’il n’y a pas de type de données, le type par défaut est Variant.
Les Types de donnée
Les Types de donnée
Le type Booléen
Vous pouvez utiliser le type de données booléen pour stocker des valeurs booléennes.
Les variables booléennes ne peuvent prendre que deux valeurs, True (Vrai) ou False (Faux).
Une variable booléenne occupe deux octets d’espace. La déclaration d’une variable
booléenne est la suivante : Dim ProduitDisponible As Boolean

 Le type de données numériques


 Ces types sont utilisés pour effectuer des opérations mathématiques telles que l’addition, la
soustraction, multiplication, etc. Exemple, calcul du pourcentage, prix de l’action, frais,
factures, âge, etc. Dans VBA, il existe 6 types de données numériques :
 ■ Byte, Integer et Long pour les données entières
 ■ Single et Double pour les valeurs décimales
 ■ Currency pour des valeurs monétaires
Les Types de donnée
Le type Date
Vous pouvez utiliser le type de données Date pour stocker une date. Chaque variable
Date occupe huit octets chacune. La plage du type de données Date s’étend du 1er
janvier 0100 au 31 décembre 9999 et l’heure de 0:00:00 à 23:59:59.
La date doit être placée entre des signes de hachage (#) lorsqu’elle est affectée au type
de données Date. MaDate = # 6/5/01 # MaDate = # 6 juin 2001 #

 Le type Object
 Une variable de type Objet est celle qui représente un objet entier, tel qu’une plage (Range)
ou une feuille de calcul (Worksheet). Ces variables sont importantes pour deux raisons.
 ■ Ils peuvent simplifier considérablement votre code.
 ■ Ils peuvent accélérer l’exécution de votre code.
 Le type de données Object peut contenir une référence à n’importe quel objet.
 Il est rarement utilisé cependant, car il est préférable de déclarer les variables comme le type
spécifique qu’elles contiendront. Par exemple : Dim ObjetGenerique As Object Et
 Dim ObjetSpecifique As Worksheet
Les Types de donnée
Le type String (Chaine de caractère)
Si votre variable contiendra toujours du texte, vous pouvez le déclarer de type String. La
séquence de caractères affectée à une variable chaîne doit être entourée de
guillemets. Dim maVariable As String
 maVariable = " Ceci est une chaîne"
 Le type Variant
Le type de données Variant est le type de données par défaut et est affecté à toutes les
variables dont le type de données n’est pas déclaré. Cependant, vous pouvez également
déclarer explicitement une variable du type de données Variant de la manière suivante:
Dim maVariable As Variant
Les variables déclarées du type de données Variant peuvent contenir des valeurs de chaîne,
de date, booléennes ou numériques et peuvent convertir automatiquement les types de
données des valeurs qu’elles contiennent. Chaque valeur Variant numérique nécessite 16
octets de mémoire et une valeur Variant chaîne nécessite 22 octets plus le stockage requis
pour les caractères. En raison de ses capacités, le type de données Variant occupe une
grande quantité de mémoire. Par conséquent, il est recommandé de déclarer explicitement
les variables.
Constants

Les constantes sont définies en utilisant le mot-clé Const à la


place de Dim, en faisant suivre le type de la variable par sa
valeur derrière le symbole =

 Exemple
 Const PI As Single = 3.1415
 Const TVA As Single = 19.6
 Const INTITULE As String = "Algorithmique et programmation"
La conversion de types

La conversion de types de données est un aspect important


lors de la programmation en VBA (Visual Basic for Applications).
VBA offre plusieurs fonctions pour vous aider à convertir des
données d'un type à un autre. Voici un aperçu des principales
conversions de types en VBA
Utilisez le mot-clé approprié pour convertir explicitement un
type de données en un autre. Par exemple, pour convertir une
variable de type Double en type Integer
La conversion de types

Quelques fonctions de conversion


CInt(expression): Convertit une expression en un entier.
CLng(expression): Convertit une expression en un long entier.
CStr(expression): Convertit une expression en une chaîne de
caractères.
CDbl(expression): Convertit une expression en un nombre à
virgule flottante double.
Commentaires

 Les commentaires sont de courtes explications destinées à


éclairer ceux qui lisent le code.
 Pour commenter une ligne de code en VBA, on met
un guillemet simple (‘) au début de la ligne.
 Exemple : 'Sheet1.Range("A1").Value = "Test"

Sheet1.Range("A1").Value = "Test" 'Exemple de commentaire de ligne partielle


CAS PRATIQUE 2

Manipulation des variables

Découverte des boites dialogues(MsgBox,


InputBox..)

Prise en main

Création d’un bloc programme


Structures de contrôle
Conditions
 Les conditions sont très utiles en programmation, elles nous serviront à
effectuer des actions en fonction de critères précis (même principe que
la fonction SI).
 La principale instruction est If
 Pour faire une condition, il faut un critère de comparaison. Dans VBA, ce
critère de comparaison est soit une valeur, une variable ou encore du
texte. On compare les données d’une cellule à notre critère de
comparaison et VBA renvoie VRAI si la comparaison est juste ou FAUX.
 VBA exécute enfin ce que vous lui avez dit de faire en fonction de ce
que renvoie la comparaison.
Conditions
 Pour comparer des valeurs numériques ou même du texte, on utilise des
signes mathématiques.
 Le plus connu des signes de comparaison est égal à (=).
 les opérateurs de comparaison :
Conditions
 Syntaxe en VBA
Conditions
 Pour créer une condition en VBA, on a besoin de plusieurs
mots-clés.
 Le premier c’est If, ce mot clé permet d’ouvrir la condition
avec un SI.
 Ensuite on écrit la condition avec le critère de comparaison.
 Lorsqu’on a fini, on inscrit le mot-clé Then qui signifie ”alors”.
Cela signifie que l’on va dire ce qu’il faut faire si la condition
est respectée. Le mot-clé Else nous permet d’écrire du code
si la condition n’est pas respectée. Pour terminer la condition,
on écrit le mot clé End If.
Conditions
 Exemple
Conditions
 Pour faire plusieurs comparaison dans un seul bloc, on utilise le
mot clé elseif
Structure de Choix
 Elle permet de simplifier la comparaison multiple
 Permet de faire le choix sur plusieurs possibilités
 On utilise le mot clé Select Case
 Cette commande permet de simplifier la succession de ElseIf.
Structure de Choix
 Exemple
Structure de Choix
 Dans cet exemple, il y a des petites nouveautés avec les deux valeurs séparées
par une virgule ou les valeurs séparées par To qui signifie ”de ... à”. Le code et
ce qui est dans les MsgBox suffit à comprendre la signification de chaque
Case.
Structure de Choix
 Dans cet exemple, il y a des petites nouveautés avec les deux valeurs séparées
par une virgule ou les valeurs séparées par To qui signifie ”de ... à”. Le code et
ce qui est dans les MsgBox suffit à comprendre la signification de chaque
Case.
Cas Pratiques

Exercice IMC
Ecrire un programme qui calcule l’indice de masse
corporel d’un individu.
Le programme prends en entré le poids de l’individu en Kg
et la taille de l’individu en M puis calcule l’imc avec la
formule suivante :
IMC= poids/taille*taille
- Si l’IMC<19 afficher en sortie “vous êtes maigre »
- Si 19<IMC<26 Afficher en sortie « Vous êtes normal »
- Si l’IMC>26 afficher en sortie “vous êtes en surpoids
Les boucles
 Une boucle permet de répéter une action tant qu’une condition
renvoie Vrai. De ce fait, on pourra faire des actions répétitives très
facilement.
 Les boucles permettent de répéter des instructions un certain
nombre de fois pour vous éviter de devoir écrire des macros d'une
longueur interminable et vous faire gagner un temps
considérable.
Les boucles en vba sont :
 La Boucle For…………………………...Next
 La Boucle Do while…………………....Loop
La Boucle for……...Next
 La boucle For...Next est utilisée lorsque vous savez combien de fois
vous souhaitez répéter une série d'instructions.
La Boucle for……...Next
 Tout d’abord, on utilise le mot-clé For qui annonce le début de la
boucle. Ensuite on utilise le nom d’une variable : ici nombre. On
dit où commence la boucle ; ensuite le mot-clé suivant est To
pour dire ”jusqu’à” puis la valeur de la dernière valeur à afficher.
La première ligne est maintenant terminée.
 quand vous avez fini votre boucle, sur la dernière ligne, il faut dire
au programme de passer à la valeur suivante par le mot-clé Next
suivi du nom de la variable. Ainsi, le programme recommence au
début avec la valeur suivante jusqu’à ce que la valeur atteigne la
valeur plafond
La Boucle for……...Next
EXERCICE

 Ecrire un programme qui permet d’afficher les nombres de 1 à 15

 Ecrire un programme qui demande à l’utilisateur de saisir 5 notes


de l’étudiant puis calcule et affiche la somme des ces notes et la
moyenne de l’étudiant
La boucle Do Until
 Elle a la meme logique que For..Next mais avec un
fonctionnement diffèrent.
 Elle va continuer de tourner tant qu’une condition est respectée.

On initialise une variable à 0. Ensuite, le


mot-clé Do Until est utilisé. Il signifie
”jusqu’à”, c’est à dire, jusqu’à ce que
ma_variable soit égale à 10. Dans le
code, on incrémente manuellement la
variable puis on affiche sa valeur. Enfin,
on utilise un nouveau mot-clé pour
signaler la fin de la boucle : Loop (qui
signifie boucler en anglais).
La boucle Do Until
 Elle a la meme logique que For..Next mais avec un
fonctionnement diffèrent.
 Elle va continuer de tourner tant qu’une condition est respectée.

On initialise une variable à 0. Ensuite, le


mot-clé Do Until est utilisé. Il signifie
”jusqu’à”, c’est à dire, jusqu’à ce que
ma_variable soit égale à 10. Dans le
code, on incrémente manuellement la
variable puis on affiche sa valeur. Enfin,
on utilise un nouveau mot-clé pour
signaler la fin de la boucle : Loop (qui
signifie boucler en anglais).
La boucle Do until
 Elle a la même logique que For..Next mais avec un
fonctionnement diffèrent.
 Elle va continuer de tourner tant qu’une condition est respectée.

On initialise une variable à 0. Ensuite, le


mot-clé Do Until est utilisé. Il signifie
”jusqu’à”, c’est à dire, jusqu’à ce que
ma_variable soit égale à 10. Dans le
code, on incrémente manuellement la
variable puis on affiche sa valeur. Enfin,
on utilise un nouveau mot-clé pour
signaler la fin de la boucle : Loop (qui
signifie boucler en anglais).
La boucle Do while
 la structure "Do while...Loop" permet de créer une boucle qui se
répète tant qu'une condition spécifiée est vraie. La syntaxe de
base pour un "Do...Loop" est la suivante :

Ici, la boucle continuera à


s'exécuter tant que la
condition i <= 5 est vraie.
La valeur de i est
incrémentée à chaque
itération, et une boîte de
message affiche la valeur
actuelle de i. La boucle se
terminera lorsque i
deviendra supérieur à 5.
La boucle Do while
 Vous pouvez également utiliser la forme "Loop While", qui vérifie la
condition à la fin de la boucle
La boucle While...Wend
 utilisée pour créer une boucle qui s'exécute tant qu'une condition
spécifiée est vraie. La syntaxe de base de la boucle
"While...Wend" est la suivante :

 Exemple
La boucle While...Wend

 Exercice Nombre premier


 Ecrire un programme de calcul et d'affichage des n premiers
nombres premiers. Un nombre entier est premier s’il n’est divisible
que par 1 et par lui-même On opérera une implantation avec des
boucles.
LES MACROS
LES MACROS

Word, Excel et PowerPoint disposent d’un


enregistreur de macros qui, à la manière d’un
magnétophone, peut enregistrer vos actions
dans le logiciel et rejouer à volonté ce que vous
avez exécuté.
MACROS
 Une macro est une suite d’instructions que vous exécutez
quand vous voulez. Pour exécuter ces instructions, il faut
appeler la macro... par son nom!
Ce nom ne doit contenir ni accent ni espace.
 Une macro est une série de commandes et d'instructions
que vous regroupez au sein d'une même commande afin
d'exécuter automatiquement une tâche. Pour gagner du
temps sur les tâches que vous effectuerez souvent,
regroupez les étapes dans une macro. Tout d'abord, vous
enregistrez la macro.
MACROS
 Une macro est une suite d’instructions que vous exécutez
quand vous voulez. Pour exécuter ces instructions, il faut
appeler la macro... par son nom!
Ce nom ne doit contenir ni accent ni espace.
 Une macro est une série de commandes et d'instructions
que vous regroupez au sein d'une même commande afin
d'exécuter automatiquement une tâche.
 Pour gagner du temps sur les tâches que vous effectuerez
souvent, regroupez les étapes dans une macro.
MACROS
 Chaque fois que l’on réalise une tâche répétitive dans
Excel, on doit se poser la question de l’intérêt d’une macro.
Il n’est nul besoin que la tâche à accomplir soit
excessivement longue ; il suffit simplement que vous
l’accomplissiez souvent.
 Si, par exemple, vous devez tous les jours imprimer la
dixième page d’un document, vous pouvez enregistrer une
macro qui automatisera cette tâche.
 A contrario, il ne sert à rien d’enregistrer une macro pour
une tâche que vous n’accomplissez qu’une seule fois ou de
manière très épisodique.
MACROS
 Chaque fois que l’on réalise une tâche répétitive dans Excel, on doit
se poser la question de l’intérêt d’une macro. Il n’est nul besoin que la
tâche à accomplir soit excessivement longue ; il suffit simplement
que vous l’accomplissiez souvent.
 Si, par exemple, vous devez tous les jours imprimer la dixième page
d’un document, vous pouvez enregistrer une macro qui automatisera
cette tâche.
 A contrario, il ne sert à rien d’enregistrer une macro pour une tâche
que vous n’accomplissez qu’une seule fois ou de manière très
épisodique.
 Mais tout ceci ne se limite pas qu’à une exécution d’instructions. Vous
pouvez également coder une interface pour échanger avec
l’utilisateur! (via des boîtes de dialogue).
Enregistrer une macro
 Pour le faire, Allez-y. Dans l’onglet développeur puis le
groupe « Code », cliquez sur « Enregistrer une macro » :
Enregistrer une macro
CAS PRATIQUE 3

Enregistrement de Macro

Mise en page automatique Macro


Les modules
 Un module VBA est un conteneur de code permettant de
regrouper les procédures et fonctions.
 Un module représente la feuille dans laquel vous écrivez
votre code depuis le début.
 Ils sont rattachés à des classeurs et le code de ces
modules peut ainsi agir sur tout le classeur.
 Ajout d'un module
 Ouvrez l'éditeur VBA en appuyant sur « Alt + F11 ».
 Dans l'Explorateur de projets(Projet VBA), faites un clic droit sur
le classeur ou le document dans lequel vous souhaitez ajouter
un module.
 Sélectionnez Insertion > Module.
Les modules
Types de modules
 Module standard : Contient
des procédures et des
fonctions pouvant être
appelées de n'importe où
dans le projet.

 Module de classe : Contient des définitions pour les objets. Utile pour
créer des objets personnalisés avec des propriétés, des méthodes et
des événements.
Variables et portée
 Portée locale(Variables locales) :
 Ce sont les variables déclarées à
l'intérieur d'une procédure ou d'une
fonction.
 Elles ne sont accessibles qu'à l'intérieur
de cette procédure ou fonction

 Portée de module :
 Les variables déclarées en dehors de
toute procédure ou fonction, au niveau
du module, ont une portée de module.
 Elles sont accessibles à toutes les
procédures et fonctions du module.
Variables et portée

 Portée globale : Si vous déclarez une variable en dehors de


tous les modules (au niveau du classeur ou de la feuille),
elle aura une portée globale et sera accessible depuis
n'importe quel module ou feuille du classeur.
Procédures
Les procédures sont des blocs de code qui effectuent des tâches spécifiques.
En VBA, il existe deux types principaux de procédures :
 les sous-routines (Sub)
 Une sous-routine, déclarée avec le mot-clé Sub, est une procédure
en VBA qui effectue une tâche spécifique sans renvoyer de valeur.
 Les sous-routines sont utilisées pour organiser le code et exécuter
des blocs de commandes.
 les fonctions (Function).
 Une fonction, déclarée avec le mot-clé Function, est une
procédure en VBA qui effectue une tâche spécifique et renvoie
une valeur.
 Les fonctions sont utilisées pour calculer des résultats et renvoyer
ces résultats pour une utilisation ultérieure.
Procédures
Syntaxe sous-routines

Syntaxe fonction
Procédures
Exemple sous-routines

Exemple fonction
Procédures
Appel d’une fonction
La fonction

Utilisation de la fonction
Procédures

Appel d’une sous-routines


La sous-routine peut être appelée comme une fonction en
affichant son nom puis les paramètres si elle en prend entre
parenthèses. Mais on peut aussi utiliser le mot-clé Call.
Call ma_sous_routine(parametre)
ou
ma_sous_routine(parametre)
UserForm

 Un formulaire personnalisé ou UserForm est une boîte de dialogue


dans laquelle vous placez les différents contrôles dont votre
application a besoin.
 Vous pouvez réfléchir à l’interface de votre projet de manière à ce
qu’elle contienne non pas un, mais plusieurs formulaires.
 l’utilisation de formulaires donnera à votre projet un aspect individuel,
facilitera au maximum le traitement des différentes données
applicatives et réduira également le temps passé à effectuer les
opérations nécessaires à leur traitement.

Vous aimerez peut-être aussi