0% ont trouvé ce document utile (0 vote)
136 vues165 pages

Esgf Vba

Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
136 vues165 pages

Esgf Vba

Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

INTRODUCTION AU VBA

Eric Ducros
Docteur en sciences de gestion
(e.ducros1@[Link])
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Présentation du langage de programmation VBA

Historique
• 1964 : Thomas Kurtz et John Kemeny, deux professeurs de
mathématiques du Dartmouth College en Californie créent le
B.A.S.I.C

• B.A.S.I.C : Beginner's All-purpose Symbolic Instruction Code


==> « Code d'instructions tous usages pour les débutants »

• Démocratisation de l’informatique et de la programmation


Présentation du langage de programmation VBA

Historique
• 1993 : lancement de VBA avec Microsoft Excel 5

• VBA ==> Visual Basic Application

• Le VBA est inclus dans tous les logiciels de la suite Office mais il
est surtout utilisé dans Excel

• Sa simplicité d’usage en a fait un outil incontournable dans les


entreprises notamment dans la finance
Présentation du langage de programmation VBA

Utilité de VBA
• Automatiser des taches répétitives. Pour cela, on écrit ce que
l’on appel des macros. Les macros peuvent ensuite être
« appelées » pour exécuter la suite de tâches pour laquelle elles
sont conçues.

• Créer de nouvelles fonctions que l’on peut ensuite utiliser dans


les formules d’Excel.

• Interagir avec des classeurs d’Excel. Le contenu et la


présentation de tout les éléments contenus dans un classeur
(feuilles, cellules, graphiques) peuvent être modifiés par du code
VBA.
Présentation du langage de programmation VBA

Utilité de VBA
• Créer des formulaires personnalisés : les formulaires sont des
boites de dialogue composées de zones de textes, listes
déroulantes, boutons… auxquels peut être associé du code VBA.
Vous pourrez ainsi créer des interfaces conviviales pour la saisie
ou l’affichage d’information.

• Communiquer avec les autres applications Microsoft Office.


Vous pourrez par exemple récupérer et afficher le contenu d’une
base de données Access.
Présentation du langage de programmation VBA

Avantages
• Facile à apprendre

• Permet d’apprendre l’ensemble des concepts fondamentaux de


la programmation ==> excellente passerelle vers des langages
plus complexes (C++, Java, etc.)

• Disponible pour tout propriétaire de la suite Office


Présentation du langage de programmation VBA

Inconvénients
• Langage interprété ==> peut être lent pour certaines tâches

• Possibilités de programmation orientée objet limitées

• Peu adapté pour des projets d’envergure


Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Découverte de l’EDI
Activation du VBA
• Fichier
• Options
• Personnaliser le ruban
• Développeur
Découverte de l’EDI
Activation du VBA
• Fichier
• Options
• Personnaliser le ruban
• Développeur
Découverte de l’EDI
Activation du VBA
• Fichier
• Options
• Personnaliser le ruban
• Développeur
Découverte de l’EDI
Activation du VBA
• Fichier
• Options
• Personnaliser le ruban
• Développeur
Découverte de l’EDI
Enregistrement d’un fichier au
format « .xlsm »
• Fichier
• Enregistrez sous
• Parcourir
• Type : « xlsm »
• Donner un nom au fichier
Découverte de l’EDI
Enregistrement d’un fichier au
format « .xlsm »
• Fichier
• Enregistrez sous
• Parcourir
• Type : « xlsm »
• Donner un nom au fichier
Découverte de l’EDI
Enregistrement d’un fichier au
format « .xlsm »
• Fichier
• Enregistrez sous
• Parcourir
• Type : « xlsm »
• Donner un nom au fichier
Découverte de l’EDI
Enregistrement d’un fichier au
format « .xlsm »
• Fichier
• Enregistrez sous
• Parcourir
• Type : « xlsm »
• Donner un nom au fichier
Découverte de l’EDI
Enregistrement d’un fichier au
format « .xlsm »
• Fichier
• Enregistrez sous
• Parcourir
• Type : « xlsm »
• Donner un nom au fichier
Découverte de l’EDI
Enregistrement d’un fichier au
format « .xlsm »
• Fichier
• Enregistrez sous
• Parcourir
• Type : « xlsm »
• Donner un nom au fichier
Découverte de l’EDI

Paramètres de sécurité

• Le niveau de sécurité est maximal par défaut

• Il faut enlever les sécurités afin de pouvoir coder

• Tous ce qui relève de la programmation VBA se trouve dans


l’onglet Développeur
Découverte de l’EDI

Paramètres de sécurité

3 4
Découverte de l’EDI

Paramètres de sécurité

• Attention à ne pas ouvrir de fichier « .xlsm » provenant d’une


source inconnue !

• Une macro VBA peut installer des virus ou endommager votre


disque dur !
Découverte de l’EDI

Accès à l’Editeur Visual Basic

• L’écriture de code en VBA se fait via un EDI spécifique appelé


l’Editeur Visual Basic

• Accessible depuis l’onglet Développeur ou grâce au raccourci


« Alt + F11 ».
Découverte de l’EDI

Accès à l’Editeur Visual Basic


Barre de
menus

Barre
d’outil

Explorateur de
projet

Explorateur de
projet
Découverte de l’EDI

Création d’un module pour coder


Découverte de l’EDI

Création d’un module pour coder


Découverte de l’EDI

Création d’un module pour coder


• Tous les codes que nous allons créer doivent impérativement se
situer dans un module

• Il est possible de changer le nom d’un module dans la fenêtre


propriété, les noms doivent respecter la convention suivante :
« Le nom ne peut être formé que de lettres, de chiffres ou du symbole
‘ _ ’. Aucun espace, aucun caractère spécial (symbole mathématique,
ponctuation, etc.). »
Découverte de l’EDI

Notre première macro


• Taper le code suivant dans le module crée précédemment :
Découverte de l’EDI

Notre première macro


• Pour exécuter le code presser la touche « F5 » ou le bouton
dans la barre d’outils

Veiller à ce que le curseur soit toujours dans le code avant


l’exécution !
Découverte de l’EDI

Notre première macro


• Une fois le code exécuté, on retrouve le résultat dans Excel :
Découverte de l’EDI

L’exécution pas à pas


• Dans VBA il est possible de contrôler l’exécution du code. Dans
l’EVB, placer le curseur dans la macro et presser la touche
« F8 » pour déclencher l’exécution pas à pas
Découverte de l’EDI

L’exécution pas à pas


• Chaque nouvelle pression de la touche « F8 » entraînera
l’exécution d’une ligne de code supplémentaire
Découverte de l’EDI

L’exécution pas à pas


• À tout moment il est possible d’interrompre l’exécution pas à
pas en pressant le bouton Réinitialiser dans la barre d’outils
Découverte de l’EDI

L’exécution pas à pas


• Lorsque VBA repère une erreur dans le code il va passer
automatiquement en exécution pas à pas et surligner en jaune
la ligne problématique

• Attention, dans certains cas le problème peut venir d’une ligne


de code précédente !
Découverte de l’EDI

L’enregistreur de macros
• Il est possible d’enregistrer les actions de l’utilisateurs sous
forme de code VBA

• Cette technique est très utile pour obtenir rapidement le code


d’une action plus ou moins compliquée (changer la couleur
d’une cellule, fermer un classeur, se connecter à une base de
données, etc.
Découverte de l’EDI

L’enregistreur de macros
• Exemple : enregistrer le changement de couleur d’une cellule
Découverte de l’EDI

L’enregistreur de macros
• Exemple : enregistrer le changement de couleur d’une cellule
Découverte de l’EDI

L’enregistreur de macros
• Exemple : enregistrer le changement de couleur d’une cellule
Découverte de l’EDI

L’enregistreur de macros
• Exemple : enregistrer le changement de couleur d’une cellule
Découverte de l’EDI

L’enregistreur de macros
• Exemple : enregistrer le changement de couleur d’une cellule
Découverte de l’EDI

Exercices
Exercice 1 : Essayer de reproduire les environnement de développement
présentés dans les captures d’écran ci-dessous grâce au menu Affichage
EDI N°1
Découverte de l’EDI

Exercices
Choisir « Explorateur de projet » dans le menu Affichage
EDI N°2
Découverte de l’EDI

Exercices
Choisir « Fenêtre Variables locales » dans le menu Affichage

EDI N°3
Découverte de l’EDI

Exercices
Réarranger « Explorateur de projet » et « Variables locales »

EDI N°4
Découverte de l’EDI

Exercices
Choisir « Fenêtre Exécution » dans le menu Affichage

EDI N°5
Découverte de l’EDI

Exercices
Exercice 2 :
Récupérer le code permettant de dessiner des bordures sur une plage de cellule
à l’aide l’enregistreur de macros.
Découverte de l’EDI

Exercices
Exercice 3 :
Récupérer le code permettant d’ouvrir un fichier Excel (ou autre) à l’aide
l’enregistreur de macros.
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Introduction au modèle objet d’Excel

Introduction
• Travailler sur Excel c’est manipuler les éléments qui le
constituent :
‒ Excel lui-même ;
‒ les classeurs ;
‒ les feuilles ;
‒ les cellules.

• Ces éléments sont appelés « Objet » dans le paradigme de la


« Programmation Orientée Objet »
Introduction au modèle objet d’Excel

Introduction
• On peut comparer les objets aux poupées russes.

Application
Excel
Introduction au modèle objet d’Excel

Introduction
• On peut comparer les objets aux poupées russes.

Application Classeurs
Excel Excel
Introduction au modèle objet d’Excel

Introduction
• On peut comparer les objets aux poupées russes.

Application Classeurs Feuilles


Excel Excel Excel
Introduction au modèle objet d’Excel

Introduction
• On peut comparer les objets aux poupées russes.

Application Classeurs Feuilles Cellules


Excel Excel Excel Excel
Introduction au modèle objet d’Excel

Introduction
• Ce n’est là qu’une minuscule partie du modèle objet Excel, on
peut aller un peu plus loin :
Introduction au modèle objet d’Excel

Introduction
• Quel est l’intérêt de connaître cette représentation ?
 Manipuler efficacement ces objets en VBA

• Analogie avec l’explorateur de dossier de Windows :


Introduction au modèle objet d’Excel

Introduction
• Désigner un fichier Excel dans un dossier nécessite de parcourir
le chemin d’accès en séparant chaque dossier par un « \ » :

• Désigner la cellule « B7 » nécessite de parcourir le chemin


d’objets en séparant chaque objet par «.» :
Introduction au modèle objet d’Excel

Introduction
• On comprend donc qu’il est nécessaire de connaître un peu le
modèle objet d’Excel afin de faire référence de manière claire
aux objets que l’on désire manipuler.

• Revenons au tout premier programme :

Pourquoi n’y a-t-il pas « [Link]… » devant


l’instruction « Range(« A1 ») » ?
Introduction au modèle objet d’Excel

Introduction
• Si l’on devait à chaque fois préciser tout le chemin pour accéder
à une cellule cela deviendrait très vite ingérable et aurait pour
effet de produire un code illisible.
• Ainsi, certains préfixes sont toujours implicites et il n’y a donc
aucune nécessité de les préciser.
• La cellule A1 désignée dans le programme ci-dessus sera
considérée comme étant celle de la feuille active du classeur
dans lequel nous tapons le code
Du coup à quoi sert de connaître le chemin d’accès à un objet, je ne
comprends plus ?
Introduction au modèle objet d’Excel

Introduction
• La nécessité de préciser un chemin d’objet complet se fera
sentir lorsque nous travaillerons avec :
‒ deux feuilles du même classeur ;
‒ deux feuilles de deux classeurs différents ;
‒ Plusieurs feuilles de plusieurs classeurs.
Introduction au modèle objet d’Excel

Les propriétés et les méthodes


• On manipule les objets Excel au travers de leurs propriétés et de
leurs méthodes.
• Les propriétés d’un objet sont ses caractéristiques :
‒ Couleur du fonds d’une cellule
‒ Largeur d’une cellule
‒ Nom d’une feuille
‒ Etc.

• Les méthodes d’un objet sont les actions qu’il est possible de
faire sur un objet :
‒ Ouvrir/fermer un classeur
‒ Activer une feuille ou une cellule
‒ Copier le contenu d’une cellule
Introduction au modèle objet d’Excel

Les propriétés et les méthodes


• Lorsqu’on met un « . » après un objet on accède :
‒ à ses propriétés repérées par l’icone

‒ à ses méthodes repérées par l’icone

Les sous-objets d’un objet sont aussi repérés par


l’icône
Introduction au modèle objet d’Excel

Les propriétés et les méthodes


• La fonction Intellisense nous offre une aide précieuse via une
fenêtre déroulante listant l’ensemble des propriétés, méthodes
et sous-objets.
• Cette fenêtre déroulante apparaît dés qu’on place le « . » après
un objet. Pour modifier à la propriété « Mot de passe » du
classeur courant on tapera :
Introduction au modèle objet d’Excel

Les propriétés et les méthodes


• Pour modifier une propriété, il suffit souvent de mettre après
son nom « = Valeur_Propriété ».
• Ainsi, dans notre exemple, pour ajouter un mot de passe à
notre classeur, il suffira de saisir :
Introduction au modèle objet d’Excel

Les propriétés et les méthodes


• Pour enlever le mot de passe précédent, nous taperons :

• Les valeurs que l’ont peut donner à une propriété dépendent de


celle-ci :
‒ certaines acceptent tout type de valeur (exemple le mot de passe ci-dessus) ;
‒ certaines doivent recevoir des constantes prédéfinies ;
‒ certaines sont en lecture seule (impossible de les modifier, nous pouvons seulement
consulter leur valeur).
Introduction au modèle objet d’Excel

Les propriétés et les méthodes


• Pour réaliser une action sur un objet, il suffit de le faire suivre
d’un « . » et de la méthode désirée
• Par exemple pour fermer un classeur et enregistrer les
dernières modifications dans autre classeur on écrira :
Permet de définir le dossier
de sauvegarde par défaut

Option SaveChanges Option Filename

Les méthodes comportent souvent des options paramétrables


Introduction au modèle objet d’Excel

Exercice
Exercice 4 :
1) Ecrire une macro qui va ajouter une feuille en utilisant la
méthode « Add » de l’objet Worksheets.

2) Ecrire une deuxième macro qui va renommer la feuille créée


précédemment en « MaFeuille » (modification de la propriété
« Name » de l’objet Worksheet).
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Instructions de base du langage VBA

Introduction
• Les instructions que l’on peut donner à un ordinateur se
regroupent en 4 catégories communes à beaucoup de langages
de programmation :
‒ l’affectation de variables
‒ La lecture et l’écriture
‒ les structures conditionnelles (tests)
‒ les structures itératives (les boucles)

 ce sont les 4 briques de bases de la programmation que


tout bon codeur se doit de connaître
Instructions de base du langage VBA

Ecriture dans une feuille de calcul


• On à déjà vu avec la première macro comment faire. Par exemple,
On utilisera toujours les ""
pour écrire des chaines de
Range("A1") = "Bonjour" caractères (i.e. du texte)

cela permet d’écrire « Bonjour » dans la cellule A1.

• Mais il est également possible d’écrire dans toutes les cellules d’une
plage de valeurs à la fois. Par exemple, Système anglo-saxon, on utilise le
point pour les nombre comportant
des décimales
Range("C4:E6") = 100.4

cela permet d’écrire le nombre 100,4 dans toutes les cellules contenu
dans la plage C4 à E6.
Instructions de base du langage VBA

Ecriture dans une feuille de calcul


• Il est très fréquent en VBA d’avoir plusieurs façon d’exprimer la
même chose. Ainsi, pour modifier la valeur de la cellule F4 il est
possible d’écrire :

Cells(4, 6) = "Je modifie F4"


Numéro de ligne Numéro de colonne

 Cette façon de faire peut sembler compliquée par rapport à


« Range » mais elle se révèlera indispensable lorsque nous
voudrons traiter des tableaux de données
Instructions de base du langage VBA

Lecture de la valeur d’une cellule


• De la même manière, il est possible de lire le contenu d’une cellule. Par
exemple,

Range("F1") = Range("C4")

cela permet de lire ce qu’il y a dans la cellule C4 et de le copier dans la


cellule F1.

• Autre exemple :

Range("F1:F6") = Range("C4")

cela permet de lire ce qu’il y a dans la cellule C4 et de le copier dans


Instructions de base du langage VBA

Lecture de la valeur d’une cellule


• Par contre, il ne faut pas écrire ça :

Range("C4") = Range("F1:F6")

Pour quelle raison ?


Instructions de base du langage VBA

L’affectation
• Dans les exemples qui précédent, on a utilisé le symbole « = »
pour écrire dans une cellule (ou plage de cellule).

• Le symbole « = » désigne ce qu’on appelle une opération


d’affectation.

• En effet quand j’écris :

Range("F1") = Range("C4")

J’affecte le contenu de C4 à F1 (sous entendu je recopie la valeur


de C4 dans F1).
Instructions de base du langage VBA

L’affectation
• L’affectation se fait toujours dans le même sens : ce qu’il y a à
droite du symbole « = » est affecté à ce qu’il y a gauche. Il ne
faut donc jamais écrire :
36 = Range("C4")

• Attention !!!
Il ne faut pas confondre le symbole « = » de VBA avec le symbole
mathématique. Cela de désigne pas la même opération. En VBA
nous pourrons avoir une expression de la sorte :
x = x + 1
Instructions de base du langage VBA

Ordre d’exécution des instructions


• Dans quel ordre sont exécutées les instructions écrites dans une
macro ?

• Le code est exécuté de haut en bas et une ligne correspond à


une et une seule instruction.

• L’ordre d’exécution peut avoir de l’importance

 Une instruction tout à fait juste engendrera une erreur


simplement à cause d’un mauvais positionnement dans le
code
Instructions de base du langage VBA

Ordre d’exécution des instructions


• Quelle est la différence entre :

Range("A1") = "salut"
Range("B1") = Range("A1")

et

Range("B1") = Range("A1")
Range("A1") = "salut"
?
Instructions de base du langage VBA

Les opérations arithmétiques


• Il est possible d’effectuer des calculs comme dans Excel.

• Les opérateurs arithmétiques sont les suivants :


‒ + : addition
‒ - : soustraction
‒ * : multiplication
‒ / : division
‒ ^ : élévation à la puissance
‒ Mod : modulo (reste de la division euclidienne)
‒ () : modification des priorités de calculs
Instructions de base du langage VBA

Les opérations arithmétiques


• Exemple :

Range("B1") = 3 * 1 / (10 ^ 3 + 1)

• Pour prendre la racine carrée d’un nombre on utilise la fonction


sqr() :

Range("B1") = 1 + Sqr(3 ^ 2 + 2 ^ 4)

Ici nous avons calculé dans B1 l’expression : 1  32  24


Instructions de base du langage VBA

Les opérations arithmétiques


• Il est possible aussi d’effectuer des calculs sur ls valeurs
contenues dans les cellules

• Dans cet exemple, il est calculé dans C1 le taux d’augmentation


entre 100 et 80 : 100  80
t  0, 25
80
Instructions de base du langage VBA

Les boites de dialogue


• Les boites de dialogues permettent de communiquer avec
l’utilisateur d’un programme. Il en existe deux principal :
‒ MsgBox : Afficher un message à l’utilisateur

La boîte de dialogue suivante apparait :


Instructions de base du langage VBA

Les boites de dialogue


‒ InputBox : demander une information à l’utilisateur

Notez qu’il faut toujours placer le résultat du InputBox dans


une cellule ou une variable (cette notion va être étudiée dans la
prochaine partie). La boite de saisie suivante apparait :
Instructions de base du langage VBA

Exercices
Exercice 5 :
Ecrire une macro effectuant les taches suivantes :
‒ Ecrire « Société » dans la cellule A1
‒ Ecrire « Type de titre » dans cellule B1
‒ Ecrire « Ouverture » dans la cellule C1
‒ Ecrire « Fermeture » dans la cellule D1
‒ Ecrire « Iliad » dans la cellule A2
‒ Ecrire « Exon » dans la cellule A3
‒ Ecrire « Action » dans la cellule B2
‒ Copier le contenu de B2 dans B3
‒ Ecrire le nombre 100 dans les cellules C2 à D3
Instructions de base du langage VBA

Exercices
Exercice 6 :
Ecrire une macro produisant le résultat suivant en utilisant le moins
d’instructions possible (la feuille au départ est vide) :
Instructions de base du langage VBA

Exercices
Exercice 7 :
Vous disposez du tableau suivant :

1) Ecrire une macro qui ajoute le libellé « Cours moyen » en A5 et place le résultat du
calcul en B5 : p p
t t 1
p
2
2) Ecrire une macro qui ajoute le libellé « Ecart-type » en A6 et place le résultat en B6 :

p   pt  p 2   pt 1  p 2
Instructions de base du langage VBA

Exercices
Exercice 8 :
1) Ecrire une macro qui va demander une valeur numérique à
l’utilisateur et la placer dans la cellule E3.
2) Ecrire une deuxième macro qui va afficher la valeur de la cellule
E3 multipliée par 0,2 dans une boîte de dialogue…
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Variables et types de données

Définition
• Dans un programme informatique, il est en permanence
nécessaire de stocker provisoirement des valeurs. Cela peut être
une valeur issue d’une cellule, le résultat d’un calcul
intermédiaire, etc

• L’image la plus simple que l’on puisse donner d’une variable c’est
de la comparer à une cellule d’un classeur Excel. En effet, une
variable va garder en mémoire une donnée comme une cellule
Excel. La différence réside dans le fait que la variable représente
un espace au sein de la mémoire vive de l’ordinateur (la RAM).
Variables et types de données

Définition
• Pourquoi ne pas toujours utiliser les cellules Excel ?

• Le temps d’accès aux variables est nettement plus court que


celui nécessaire pour accéder aux cellules Excel

 Le même programme sera beaucoup plus lent avec des cellules


qu’avec des variables
Variables et types de données

Déclaration
• La première chose à faire avant de pouvoir utiliser une variable
est de créer réserver un espace mémoire et de lui donner un
nom. Ceci se fait tout au début de l’algorithme, avant même les
instructions proprement dites. C’est ce qu’on appelle la
déclaration des variables.

• Lorsqu’on déclare une variable, il ne suffit pas de réserver un


emplacement mémoire) ; il faut aussi préciser le type de donnée
contenu ainsi que la taille
Variables et types de données

Déclaration
• Une fois déclarée on peut faire deux choses avec une variable :
‒ lui affecter une valeur en utilisant l’opérateur d’affectation « = » ;
‒ accéder à son contenu tout simplement en « l’appelant ».

• Syntaxe générale de déclaration de variable en VBA :

Dim nom_variable As type

où nom_variable est les noms de variable et type désigne le type de


donnée.
Variables et types de données

Déclaration
• Exemple : On réserve un espace mémoire
nommé CA_HT et destiné à
contenir uniquement des
nombres entiers.

On demande le chiffre d’affaires


à l’utilisateur et on place le
résultat dans la variable CA_HT.

On calcule le chiffre d’affaires


TTC et on stocke la valeur dans
la variable CA_TTC.
On affiche le contenu de la
variable CA_TTC dans une boîte
de dialogue.
Variables et types de données

Fenêtre variable locale


• Nous avons vu précédemment le mode d’exécution pas à pas
permettant de contrôler l’exécution d’un programme grâce à la
touche F8.

• En parallèle à l’usage de ce mode d’exécution il est possible


d’activer la fenêtre « Variable locale » afin de suivre l’évolution
des valeurs des variables de notre programme.

 C’est la technique qui doit être privilégiée pour un débogage


efficace.
Variables et types de données

Fenêtre variable locale


Variables et types de données

Les types de données numériques


• Il existe plusieurs types de données permettant de stocker des
nombres en VBA.

• Le type de donnée choisi pour un nombre va déterminer :


‒ les valeurs maximales et minimales des nombres pouvant être stockés
dans la variable
‒ la précision de ces nombres (dans le cas de nombres décimaux).
Variables et types de données

Les types de données numériques


• Liste des types numériques :

 Les types contenant des nombres entiers


‒ Byte : 0 à 255
‒ Integer : -32 768 à 32 767
‒ Long : -2 147 483 648 à 2 147 483 647

 Les types contenant des nombres décimaux


‒ Single : -3,40x1038 à -1,40x1045 pour les valeurs négatives
1,40x10-45 à 3,40x1038 pour les valeurs positives
‒ Double : 1,79x10308 à -4,94x10-324 pour les valeurs
négatives
4,94x10-324 à 1,79x10308 pour les valeurs positives
Variables et types de données

Les types de données numériques


• Il est fortement conseillé d’adapter le choix de ses variables en
fonction de ses besoins

 On évitera de mettre le type « Double » partout !

• Un bon algorithme doit arriver à ses fins en évitant de gaspiller


les ressources de la machine.

• Sur certains programmes de grande taille, l’abus de variables


surdimensionnées peut entraîner des ralentissements notables à
l’exécution, voire un plantage pur et simple de l’ordinateur.
Variables et types de données

Le type « chaine de caractères »


• En VBA, le type de données correspondant aux chaines de
caractères est le type String.

• Exemple :
Dim s As String
s = "salut"

• Dans une variable de ce type, on stocke des caractères (lettres,


signes de ponctuation, espaces ou chiffres). Le nombre maximal
de caractères pouvant être stockés dans une seule variable
« string » dépend du langage utilisé.
Variables et types de données

Le type « chaine de caractères »


• Un groupe de caractères (y compris un groupe de un ou de zéro
caractères), qu’il soit ou non stocké dans une variable, d’ailleurs,
est donc souvent appelé chaîne de caractères.

• Une chaîne de caractères est toujours notée entre guillemets.


Variables et types de données

L’opérateur de concaténation
• On à déjà vu que l’on pouvait effectuer des opérations avec les
types numériques (addition, multiplication…).

• Il existe également une opération que l’on peut faire avec les
chaines de caractères que l’on appelle la concaténation.

• En VBA, la concaténation se fait avec le symbole « & ».


Variables et types de données

L’opérateur de concaténation
• Exemple :

Alternance de parties
fixes et de parties
variables
Variables et types de données

L’opérateur de concaténation
• Exemple :
Variables et types de données

L’opérateur de concaténation
• Utilisation redondante de l’opérateur « & » :
Variables et types de données

Le type booléen
• En VBA, le type de données correspondant aux booléens est le
type Bool. On y stocke uniquement les valeurs logiques Vrai ou
Faux (ou leurs équivalents : Oui ou Non, Présent ou Absent et
finalement 1 ou 0).

• Exemple :
Dim Flag As Boolean
Flag = True

• Le type booléen permet de tester la présence ou l’absence d’un


évènement (tout ceci prendra son sens lorsque nous étudierons
les structures conditionnelles).
Variables et types de données

Le type Date
• Le type Date (qui en VBA s’écrit Date) est un type composite en
ce sens qu’il est constitué de 3 éléments : le jour, le mois et
l’année qui sont stockés en mémoire sous forme de nombres
entiers.

• Exemple :
Dim jour As Date
jour = #1/13/2008#

• Il est possible d’accéder aux différentes composantes d’une date.


Pour cela, on dispose des fonctions Day(), Month() et
Year().
Variables et types de données

Le type Date
• Exemple :
Variables et types de données

L’option Explicit
• En VBA, il n’est pas obligatoire de déclarer les variables, il est
cependant très fortement conseillé de le faire.

• Il est possible de forcer la déclaration de variables en ajoutant :

Option Explicit

au tout début du module.

 Il est fortement recommandé de mettre cette option au début


de tous vos modules.
Variables et types de données

Le type Variant
• Il existe également un type spécial en VBA appelé Variant.

• Une variable de type Variant peut contenir n’importe quel


type de données parmi les types décrit avant.

• Attention le type Variant est très gourmand en ressources de


l’ordinateur.

• On utilise ce type que s’il existe une bonne raison de le faire (par
exemple pour les variables tableaux).
Variables et types de données

Exercices
Exercice 9 :
Essayer de déterminer mentalement les résultats des macros ci-
dessous avant de les taper.
1) Qu’y aura-t-il dans les cellules A1 et B1 après l’exécution de
cette macro.
Sub Macro1()
Dim a As Integer
Dim b As Integer
a = 1
b = a + 3
a = 3
Range("A1") = a
Range("B1") = b
End Sub
Variables et types de données

Exercices
2) Qu’y aura-t-il dans les cellules A1, B1 et C1 après l’exécution de
cette macro.
Sub Macro2()
Dim a As Integer
Dim b As Integer
Dim c As Integer
a = 5
b = 3
c = a + b
a = 2
c = b - 1
Range("A1") = a
Range("B1") = b
Range("C1") = c
End Sub
Variables et types de données

Exercices
3) Qu’y aura-t-il dans les cellules A1 et B1 après l’exécution de
cette macro.
Sub Macro3()
Dim a As Integer
Dim b As Integer
a = 5
b = a + 4
a = a + 1
b = a - 4
Range("A1") = a
Range("B1") = b
End Sub
Variables et types de données

Exercices
4) Qu’y aura-t-il dans les cellules A1 et B1 après l’exécution de
cette macro.
Sub Macro4()
Dim a As Integer
Dim b As Integer
a = 5
b = 2
a = b
b = a
Range("A1") = a
Range("B1") = b
End Sub
Que se passe-t-il si on inverse les instructions en vert ?
Variables et types de données

Exercices
Exercice 10 :
Ecrire une macro inversant le contenu des cellules A1 et B1 (on
suppose bien sûr qu’elles contiennent déjà quelque chose).
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Codage de nouvelles fonctions en VBA

Introduction
• Jusqu’ici nous avons codé des macros qui sont des programmes
déclarés de la manière suivante :
Sub nom_macro()

End Sub
• Il est possible d’associer un bouton pour déclencher l’exécution
d’une macro :
Codage de nouvelles fonctions en VBA

Les fonctions
• Il est également possible d’écrire des fonctions que l’on pourra
ensuite appeler dans une formule Excel (comme la fonction
Somme() par exemple).

• Une fonction est une sorte de « boite noire » qui prend en


entrée des paramètres, effectue un calcul à partir de ces
paramètres et renvoie un résultat :
‒ Par exemple : la fonction MAX d’Excel prend en paramètre une plage
de valeurs et donne comme résultat le maximum des valeurs de cette
plage.
Codage de nouvelles fonctions en VBA

Les fonctions
• Ainsi, pour définir une fonction soi-même, il faut indiquer quels sont les
paramètres (et leur type) nécessaires au calcul, il faut aussi définir le résultat
(et son type).

• Syntaxe générale :

Function nom_fonction(arguments) As type_retourné


code de la fonction …
nom_fonction = valeur_renvoyé
End Function

avec :
‒ nom_fonction est le nom donnée à la fonction.
‒ arguments est la liste des paramètres de la fonction
‒ type_retourné est le type du résultat de la fonction
‒ valeur_renvoyé est le résultat de la fonction.
Codage de nouvelles fonctions en VBA

Les fonctions
• Exemple :

• Une fois déclarée, la fonction peut s’utiliser directement dans


Excel comme n’importe quelle autre fonction :
Codage de nouvelles fonctions en VBA

Les fonctions
• Une fonction peut aussi être exécutée depuis une macro :
Codage de nouvelles fonctions en VBA

Les fonctions
• Attention, dans VBA, une fonction ne peut jamais être exécutée
directement, elle doit toujours être appelée depuis une macro.

• En effet, pour que la fonction puisse réaliser son calcul, elle a


toujours besoin de connaître la valeur de ses paramètres.
Codage de nouvelles fonctions en VBA

Exercices
Exercice 11 :
Question 1 :
Ecrire une fonction Mensualite_Constante (K, i , n) qui va calculer la
mensualité constante d’un emprunt à partir de la formule :
 i 
K  
M=  12 
12 n
  i 
1  1    
  12  
avec K : le montant du capital emprunté en euros ;
i : le taux d’intérêt ;
n : la maturité de l’emprunt en années.
Codage de nouvelles fonctions en VBA

Exercices
Question 2 :
Ecrire une macro qui va demander à l’utilisateur d’entrer le capital K,
le nombre d’années n et le taux d’actualisation i et stocker chacune
de ses données dans des variables dont vous déterminerez le type.

Ensuite le programme fera appel de la fonction de la question


précédente et stockera le résultat dans une variable de type Long et
le présentera dans une boite de dialogue de la façon suivante pour
un utilisateur ayant entré K = 100 000, n=6 et i=2.5 % :

« La mensualité constante d’un emprunt de 100 000 € remboursé


sur 6 ans au taux de 2.5 % est de 1 497 €. »
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Structures conditionnelles

Définition
• Une structure conditionnelle donne à un programme la possibilité
de « réagir » en fonction de certains évènements prévus.

• Exemple : si la valeur de mon portefeuille boursier perd plus de 5 %


dans une journée, le programme affiche un message d’alerte.

• L’occurrence d’évènements nécessitant une certaine action de la


part du programme seront « testées » grâce à une « expression
booléenne ».

• Une structure conditionnelle est aussi appelée « test »


Structures conditionnelles

Expression booléenne
• Une expression booléenne prendra la forme d’une égalité ou d’une inégalité
entre une variable et une va leur, deux variables ou même des cellules Excel :
‒ Variation_portefeuille < -5%
‒ CA_TTC >= 20 %
‒ Fonction_employé = « Cadre »

• Une expression booléenne est soit vraie soit fausse.

• Les opérateurs de comparaison sont :


‒ = : égal à…
‒ < : inferieur strictement à…
‒ > : supérieur strictement à…
‒ <= : inferieur ou égal à…
‒ >= : supérieur ou égal à…
‒ != ou <> : différent de…
Structures conditionnelles

Structure d’un test : forme 1


• Une structure conditionnelle peut prendre 3 formes, la première
forme est :
If expression_booléenne Then
instructions
End If

avec :
‒ expression_booléenne : égalité ou inégalité prenant la valeur vraie ou faux ;
‒ instructions : les instructions qui seront exécutées dans le cas où
expression_booléenne est vraie.
Structures conditionnelles

Structure d’un test : forme 1


• La macro qui suit lit le nombre dans la cellule A1 et écrit
« positif » dans la cellule B1 si celui-ci est positif.

Sub test1()
Dim a As Integer
a = Range("A1")
If a > 0 Then
Range("B1") = "Positif"
End If
End Sub
Structures conditionnelles

Structure d’un test : forme 2


• La 2e forme est :

If expression_booléenne Then
instructions_1
Else
instructions_2
End If
avec :
‒ expression_booléenne : égalité ou inégalité prenant la valeur vraie ou faux ;
‒ instructions_1 : les instructions qui seront exécutées dans le cas où
Expression_booléenne est vraie ;
‒ instructions_2 : les instructions qui seront exécutées dans le cas où
Expression_booléenne est fausse.
Structures conditionnelles

Structure d’un test : forme 2


• L’exemple précédent peut maintenant être amélioré.

Sub test2()
Dim a As Integer
a = Range("A1")
If a > 0 Then
Range("B1") = "Positif"
Else
Range("B1") = "Negatif ou nul“
End If
End Sub
Structures conditionnelles

Structure d’un test : forme 3


• La 3e forme pour tester plusieurs possibilités de manière séquentielle :
If expression_booléenne_1 Then
instructions_1
ElseIf expression_booléenne_2 Then
instructions_2
...
Else
instructions_n
End If
avec :
‒ expression_booléenne_1 : égalité ou inégalité prenant la valeur vraie ou faux ;
‒ instructions_1 : les instructions qui seront exécutées dans le cas où expression_booléenne_1 est
vraie ;
‒ instructions_2 : les instructions qui seront exécutées dans le cas où expression_booléenne_2 est
vraie et que expression_booléenne_1 est fausse ;
‒ instructions_n : les instructions qui seront exécutées si les n-1 expressions booléennes
précédentes étaient fausses.
Structures conditionnelles

Structure d’un test : forme 3


• Exemple

Sub test3()
Dim a As Integer
a = Range("A1")
If a > 0 Then
Range("B1") = "Positif"
ElseIf a = 0 Then
Range("B1") = "Nul"
Else
Range("B1") = "Negatif"
End If
End Sub

• Remarque : ici nous testons si a est égal à 0 avec a = 0. Dans un certain contexte le « = » est vu
comme le symbole mathématique et non pas comme l’opérateur d’affectation.

• Dans le contexte d’une expression booléenne « = » signifie toujours l’égalité.


Structures conditionnelles

Tests imbriqués
• Il est possible d’imbriquer un test dans un test (et ainsi de suite…) :

If a>=0 Then
If a < 10 Then
Range("B1") = "inferieur à 10"
Else
Range("B1") = "superieur à 10"
End If
End If

Remarque : l’indentation (les tabulations du code entre les if, les else et
les end if) prend ici toute son importance afin d’identifier clairement la
structure du code.
Structures conditionnelles

Tests sur des chaînes de caractères


• Lorsque le test porte sur une chaine de caractères alors on peut juste
tester l’égalité ou la différence d’une variable avec une chaîne de
caractères :
If Type_titre = "Actions" Then
ou
If Type_titre <> "Actions" Then

• De manière évidente il y a peu d’intérêt à tester qu’une variable est


supérieure ou inférieure à une chaine de caractères.

• Attention, un tel test ne renverra pas d’erreur puisqu’une chaine de


caractère est stockée sous forme de nombre en mémoire !
Structures conditionnelles

Expressions booléennes composées


• Lorsqu’on veut tester l’appartenance d’une variable à un
ensemble de valeurs comme par exemple :

18 < Age < 25

il convient alors de la convertir en deux inégalités assorties


d’un opérateur logique AND, OR ou encore NOT.
Structures conditionnelles

Expressions booléennes composées


• Au lieu d’écrire :

If 18 < Age < 25 Then…

on écrira plutôt :

If Age > 18 And Age < 25 Then…


Structures conditionnelles

Les opérateurs logiques


• Soient C1 et C2 deux conditions (égalité ou inégalité) alors :

C1 And C2 C2 Vrai C2 Faux Not C1 C1 Vrai


C1 Vrai Vrai Faux C1 Vrai Faux
C1 Faux Faux Faux C1 Faux Vrai

C1 Or C2 C2 Vrai C2 Faux
C1 Vrai Vrai Vrai
C1 Faux Vrai Faux
Structures conditionnelles

Exercice
Exercice 12 :
Proposer 2 structures conditionnelles if différentes utilisant un
opérateur logique pour tester l’expression mathématique
suivante :

Var1 ∉ [8 ; 13]

8 13

Var1
Structures conditionnelles

Exercice
Exercice 13 :
a) Écrire une fonction qui prend 2 nombres entiers en paramètre et renvoie le plus grand des
2.

b) Écrire une fonction qui prend en paramètre un nombre entier et qui renvoie vrai si le
nombre est pair ou faux sinon (utiliser l’opérateur Mod et le type booléen).

c) Ecrire une fonction qui prend en paramètre un nombre entier et qui renvoie vrai si le
nombre est compris entre 10 et 20, ou faux sinon (utiliser le type booléen).

d) Même chose mais cette fois-ci, la fonction renvoi vrai si le nombre n’est pas compris entre
10 et 20 (utiliser le type booléen).

e) Écrire une fonction qui prend en paramètre la température de l'eau et renvoi une chaine
indiquant si elle est sous forme liquide, solide ou gazeuse (utiliser le type String pour le
Structures conditionnelles

Exercice
Exercice 14 :
Ecrire une fonction qui prend en paramètre l’âge d’un enfant et
donne comme résultat sa catégorie pour l’exercice d’une activité
sportive :
a) "Hors catégorie" pour les moins de 6 ans
b) "Poussin" de 6 à 7 ans
c) "Pupille" de 8 à 9 ans
d) "Minime" de 10 à 11 ans
e) "Cadet" après 12 ans
Structures conditionnelles

Exercice
Exercice 15 :
Les habitants de Zorglub paient l’impôt selon les règles suivantes :
‒ les hommes de plus de 20 ans paient l’impôt
‒ les femmes paient l’impôt si elles ont entre 18 et 35 ans
‒ les autres ne paient pas d’impôt

Ecrire une fonction qui prend en paramètre l’âge et le genre du


Zorglubien, et se prononcera ensuite sur le fait que l’habitant est
imposable ou pas
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Plan de la formation

• Présentation du langage de programmation VBA


• Découverte de l’environnement de développement
• Introduction au modèle objet d’Excel
• Instructions de base du langage VBA
• Variables et types de données
• Codage de nouvelles fonctions en VBA
• Structures conditionnelles
• Structures itératives
Structures itératives

Définition
• Une structure itérative appelée aussi boucle est un ensemble
d’instructions permettant de répéter des lignes de codes.

• L’intérêt est d’éviter d’avoir à réécrire des lignes de codes devant


être répétées plusieurs fois.

• Si on doit exécuter 50 fois 30 lignes de code alors sans l’aide des


boucles il faudrait écrire : 50 × 30 = 1 500 lignes.

• Grâce à une boucle il faudra juste écrire 15 lignes plus 2 lignes


correspondant au codage de la structure itérative soit 17 lignes au
lieu de 1 500.
Structures itératives

Définition
• Il existe 2 types de boucles :

‒ La boucle Do…Loop : le nombre d’itération dépend d’un test, on ne


connait pas à l’avance le nombre d’itérations réalisées.

‒ La boucle For…Next : le nombre d’itérations désirées est codés dans


la boucle, on connait à l’avance le nombre d’itérations.
Structures itératives

Do…Loop
• Cette boucle permet de répéter du code tant qu’une condiftion
est vérifiée ou jusqu’à ce qu’une condition soit vérifiée.

• Cette structure conditionnelle est très utile pour faire de la


validation de donnée lorsqu’un utilisateur doit saisir des
information pour créer un compte sur un site web par exemple.

• L’utilisateur n’accède pas à la suite du processus d’inscription


tant qu’il ne fournit pas les données attendues ou
symétriquement jusqu’à ce qu’il les fournissent.
Structures itératives

Do…Loop
• Comme le montre l’exemple précédent il est toujours possible
d’analyser une situation nécessitant une boucle Do…Loop de
deux façon amenant chacune à une version différente de Do…
Loop :

• Do…Loop While : les instructions sont répétées tant que la


condition est vraie

• Do…Loop Until : les instructions sont répétées jusqu’à ce que la


condition soit vraie
Structures itératives

Do…Loop
• Syntaxe Do…Loop While :

Do
Instructions

Loop While expression_booléenne

‒ expression_booléenne : égalité ou inégalité prenant la valeur vraie ou faux ;


‒ Instructions : les instructions qui seront répétées tant que expression_booléenne est vraie
;
Structures itératives

Do…Loop
• Syntaxe Do…Loop Until :

Do
Instructions

Loop Until expression_booléenne

‒ expression_booléenne : égalité ou inégalité prenant la valeur vraie ou faux ;


‒ Instructions : les instructions qui seront répétées jusqu’à ce que expression_booléenne
soit vraie ;
Structures itératives

Do…Loop
• Dans cet exemple nous allons demander l’âge de la personne
jusqu’à ce que ce que l’utilisateur entre un nombre positif :

Exemple 1
Sub Controler_Age()

Dim age As Integer

Do
age = InputBox("Quel est ton age")
Loop While Age < 0

MsgBox “Vous pouvez accéder à la suite de l’inscription”

End Sub
Structures itératives

Do…Loop
Exemple 2
Sub Controler_Age()

Dim age As Integer

Do
Le sens de l’inégalité
age = InputBox("Quel est ton age") change lorsqu’on
Loop Until Age > 0 utilise Until

MsgBox “Vous pouvez accéder à la suite de l’inscription”

End Sub
Structures itératives

Do…Loop
• Dans les exemples précédents les instructions While et Until se
trouvaient au niveau du Loop.
• Il est aussi possible de les faire figurer au niveau du Do comme
dans l’exemple qui suit :
Sub Controler_Age()

Dim age As Integer

Do Until Age > 0


age = InputBox("Quel est ton age")
Loop

MsgBox “Vous pouvez accéder à la suite de l’inscription”

End Sub
Structures itératives

Do…Loop
• L’exemple précédent peut être intéressant si dans certain cas il
ne faut même pas réaliser une itération.

• On mettra les conditions en face du Loop lorsque la réalisation


d’au moins une itération est nécessaire ce qui est le cas de notre
exemple puisqu’il faut demander l’âge de l’utilisateur au moins
une fois.
Structures itératives

For…Next
• Dans les situations où le nombre d’itérations est connu alors on
utilise la boucle For…Next.

• Syntaxe For…Next :
For Var = début To fin
Instructions
Next
‒ Var est une variable
‒ Début et fin sont des nombres entiers (ou des expressions ayant pour
résultat un nombre entier)
‒ Instructions est une suite d’instructions
Structures itératives

For…Next
• Le nombre d’itérations sera égal à (début – fin + 1). Par exemple
si on écrit :
For i = 3 to 9
Instructions
Next
le nombre d’itérations sera 9 – 3 + 1 = 7.

• La variable i sert de compteur, elle sera incrémentée à


chaque début d’itération

• En général, la variable i est reprise dans les instructions entre


le For et le Next
Structures itératives

For…Next
• Dans Excel les boucles For…Next servent souvent à parcourir un
tableau de données. Nous allons écrire une macro qui va afficher
une par une dans une boite de dialogue les données contenues
dans le tableau suivant :
Structures itératives

For…Next
On utilise l’instruction Cells() et la variable compteur i qui
permet de repérer les lignes :
Structures itératives

Exercice
Exercice 16 :
a) Ecrire une macro qui demande à l’utilisateur un nombre
compris entre 1 et 3 jusqu’à ce que la réponse convienne.

b) Ecrire une macro qui demande un nombre compris entre 10 et


20, jusqu’à ce que la réponse convienne. En cas de réponse
supérieure à 20, on fera apparaître le message « Plus petit ! »,
et inversement, « Plus grand ! » si le nombre est inférieur à 10.

c) Ecrire une macro qui demande une série de 10 chiffres à


l’utilisateur et les place dans les cellules A1 à A10.
Structures itératives

Exercice
Exercice 17 :
a) Ecrire une fonction permettant de calculer la factorielle d’un nombre.

b) Écrire une fonction qui prend en paramètre 2 entiers a et b et


calculent le produit des nombres compris entre a et b.

c) Ecrire une macro que calcule et affiche dans une boite de dialogue la
somme des valeurs contenues dans une plage de cellule.

d) Ecrire une macro qui affiche dans une boite de dialogue le contenu des
cellules d’une plage de valeur. Attention, on souhaite que tout soit
affiché dans une seule boite !

Vous aimerez peut-être aussi