Vous êtes sur la page 1sur 26

Haute École de Gestion 05/10/2007

Département Économie
d’entreprise

Bienvenue

au cours Programmation en VBA Excel

Cours
Programmation
Département Économie
VBA d’entreprise

Faisons connaissance…

„ Etudiants se présentent
‹ Nom, Prénom

‹ Avez-vous déjà fait des macros Excel ?

‹ Avec-vous déjà programmé avec VBA Excel ?

‹ Avez-vous déjà programmé avec d'autres langages


informatiques ?

„ Enseignant se présente

Nguyen Vi CAO Slide No : 2

HEG - Cours Programmation VBA - Nguyen Vi CAO 1


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Contexte et orientations du cours

Le cours programmation en VBA Excel


„ Dure une demi-journée (relativement court)
¾ Se concentrer sur les concepts et les instructions de base

„ Est adressé aux économistes d'entreprise


¾ Cours plus orienté vers la gestion que la technique

„ Fait partie de l'option Finance et Gestion des Risque


¾ Faire une application simple dans le domaine financier

Nguyen Vi CAO Slide No : 3

Cours
Programmation
Département Économie
VBA d’entreprise

Démarche adoptée

„ Le cours s'appuie sur l'amélioration progressive d'une


application financière simple
‹ Etape 1: partir avec un 1er modèle contenant des formules
‹ Etape 2: automatiser une tâche par une macro
‹ Etape 3: introduire l'interaction avec l'utilisateur
‹ Etape 4: remplacer les formules par des programmes VBA
‹ Etape 5: faire un modèle dynamique par programmation

„ A chaque étape, des éléments théoriques sont présentés


en alternance avec la pratique

Nguyen Vi CAO Slide No : 4

HEG - Cours Programmation VBA - Nguyen Vi CAO 2


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Objectifs du cours

Savoir

„ Les concepts de base du langage VBA

„ Les instructions souvent utilisées en VBA

„ Faire une application financière simple en VBA

Par la suite

„ Utiliser l'exemple vu au cours

„ Faire des applications plus complexes en VBA

Nguyen Vi CAO Slide No : 5

Cours
Programmation
Département Économie
VBA d’entreprise

Bibliographie

„ RIVA Fabrice, 2005,« Applications financières sous


Excel en Visual Basic », Economica

„ BIDAULT Mikaël, 2005, « Microsoft Excel & VBA XP »,


CampusPress

Nguyen Vi CAO Slide No : 6

HEG - Cours Programmation VBA - Nguyen Vi CAO 3


Haute École de Gestion 05/10/2007

Département Économie
d’entreprise

1er Modèle Excel

(feuille de calcul avec données et formules)

Cours
Programmation
Département Économie
VBA d’entreprise

1er modèle Excel

Bien souvent, une feuille de calcul avec

„ Des zones contenant des données et paramètres

„ Des zone contenant des formules


‹ Qui utilisent les références absolues et/ou relatives

‹ Qui utilisent des fonctions disponibles dans Excel

‹ Qui permettent d'obtenir des résultats

„ On y ajoute éventuellement des graphiques, etc.

„ Mais il n'y a pas de programmations VBA

Nguyen Vi CAO Slide No : 8

HEG - Cours Programmation VBA - Nguyen Vi CAO 4


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Exemple: Le modèle Epargne0

„ Les constantes
‹ le nombre de périodes

„ Les données (variables)


‹ Le capital initial

‹ Le taux d'intérêt

‹ La conversion en monnaie étrangère ou non

‹ Le taux de change

„ Les formules permettent de calculer


‹ Le capital final en Frs

‹ Le capital final en monnaie étrangère si cette option est choisie

‹ Le capital en Frs à la fin de chacune des périodes de placement

Nguyen Vi CAO Slide No : 9

Département Économie
d’entreprise

2ème modèle Excel

(avec utilisation des Macros )

HEG - Cours Programmation VBA - Nguyen Vi CAO 5


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

2ème modèle Excel avec utilisation des macros

„ Il est possible d'enregistrer la séquence des opérations


effectuées avec le clavier et la souris dans une macro

„ L'exécution de la macro déclenche automatique la


séquence des opérations enregistrées

„ C'est un moyen rapide pour automatiser les tâches


répétitive

„ Cette automatisation ne demande pas de connaissance en


programmation

Nguyen Vi CAO Slide No : 11

Cours
Programmation
Département Économie
VBA d’entreprise

Exercice: le modèle Epargne1

„ Ouvrir le modèle Epargne0

„ L’enregistrer sous le nom Epargne1

„ Enregistre une macro nommée Epagne permettant de


‹ sélectionner les cellules contenant le capital initial, le taux
d'intérêt et la conversion en devise

‹ Effacer le contenu des ces cellules

„ Affecter cette macro à un bonton

„ Tester le fonctionnement de la macro avec le bouton

Nguyen Vi CAO Slide No : 12

HEG - Cours Programmation VBA - Nguyen Vi CAO 6


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

2ème modèle Excel avec utilisation des macros

Si l'onglet Développeur n'est pas disponible

„ Cliquez sur le Bouton Microsoft Office , puis sur


Options Excel.

„ Dans la catégorie Standard, sous Meilleures options pour


travailler avec Excel, cochez la case Afficher l'onglet
Développeur dans le ruban, puis cliquez sur OK

Nguyen Vi CAO Slide No : 13

Cours
Programmation
Département Économie
VBA d’entreprise

2ème modèle Excel avec utilisation des macros

Pour enregistrer une macro

„ Menu Développeur

„ Cliquer sur Enregistrer une macro

„ Donner le nom Epargne à la macro

„ Faire la séquence d’opérations

„ Cliquer sur arrêter l’enregistrement

Nguyen Vi CAO Slide No : 14

HEG - Cours Programmation VBA - Nguyen Vi CAO 7


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

2ème modèle Excel avec utilisation des macros

Pour affecter une macro à un bouton

„ Menu Insertion, Option Forme

„ Dessiner le bouton, un rectangle par exemple

„ Donner nom Epargne à votre bouton

„ Cliquer sur le bouton droite de la souris

„ Sélectionner affecter une macro

„ Sélectionner la macro Epargne

Nguyen Vi CAO Slide No : 15

Département Économie
d’entreprise

Editeur Visual Basic

HEG - Cours Programmation VBA - Nguyen Vi CAO 8


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Pratique

Ouvrir la macro Epargne dans l’éditeur VB

„ Ouvrir le modèle Epargne1

„ Sous le menu Développer, cliquer sur Visual Basic

„ Dans la fenêtre Explorateur de projet cliquer sur Module 1

„ Ouvrir la macro Epargne

„ Dans la fenêtre Code, observer le programme VBA généré


lors de l’enregistrement de la macro

Nguyen Vi CAO Slide No : 17

Cours
Programmation
Département Économie
VBA d’entreprise

Editeur Visual Basic


„ VB editor est un environnement pour facilite l’écriture des
programmes VB

Fenêtre
Explorateur
de projets

Fenêtre Code

Fenêtre Propriété

Nguyen Vi CAO Slide No : 18

HEG - Cours Programmation VBA - Nguyen Vi CAO 9


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Remarque sur la structure de la macro

„ La macro commence par Sub et se termine par End Sub

Sub nom [(ListeArguments)]


[instructions]
End Sub

„ Cette structure de base est appelée une procédure

„ Elle permet de créer un module qui regroupe des instructions


permettant d’effectuer une tâche particulière

„ Une procédure peut être appelée à partir d’autres procédures


par invocation de son nom et éventuellement des paramètres
=> programmation modulaire

Nguyen Vi CAO Slide No : 19

Cours
Programmation
Département Économie
VBA d’entreprise

Remarque sur la structure de la macro

Il est important de

„ Commenter le programme

„ Commenter = insérer les lignes d’explications précédées par un


apostrophe

„ Les commentaires facilitent la compréhension et la maintenance du


programme

„ Indenter les instructions

„ Indenter = aligner les instructions de même niveaux en utilisant la


barre d’espace ou la tabulation

„ L’indentation améliore la lisibilité du programme donc sa


compréhension

Nguyen Vi CAO Slide No : 20

HEG - Cours Programmation VBA - Nguyen Vi CAO 10


Haute École de Gestion 05/10/2007

Département Économie
d’entreprise

VBA et le langage Orienté Objets

Concepts de base

Cours
Programmation
Département Économie
VBA d’entreprise

VB et VBA

„ VB (Visual Basic)
¾ Est un langage Orienté Objet de Microsoft

¾ Il ne dépend pas d’applications hôtes

„ VBA (Visual Basic for Application)


¾ a la même syntaxe que VB

¾ Dépend d’une application hôte (Excel, Word, Access, etc.)

Nguyen Vi CAO Slide No : 22

HEG - Cours Programmation VBA - Nguyen Vi CAO 11


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Langage Orienté Objets

„ Un objet
‹ Est quelque chose qui a une existence, des propriétés
propres, des actions qui règlent son comportement
Š Exemple une voiture, une feuille Excel

„ Une collection
‹ Ensemble d’objets de mêmes natures
Š Exemple les voitures, les feuilles Excel

„ Une classe
‹ Définition commune d’un ensemble d’objet
Š Exemple caractéristiques communes des voitures, des feuilles Excel

Nguyen Vi CAO Slide No : 23

Cours
Programmation
Département Économie
VBA d’entreprise

Langage Orienté Objets

Un objet a

„ Des propriétés
Š Exemple: la couleur de la voiture, le nom de la feuille Excel

„ Des méthodes
‹ Qui sont des actions qui règlent le comportement de l’objet
Š Exemple: démarrer la voiture, copier une feuille Excel

Nguyen Vi CAO Slide No : 24

HEG - Cours Programmation VBA - Nguyen Vi CAO 12


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Langage Orienté Objets

Quelques mots clés

„ Instanciation
‹ Créer un objet particulier à partir d’une classe

„ Héritage
‹ Les objets d’une même classe ont des mêmes propriétés

Nguyen Vi CAO Slide No : 25

Cours
Programmation
Département Économie
VBA d’entreprise

Exemples d’objets Excel

„ Objet Workbook (représente un classeur)


‹ Propriétés: Fullname, FileFormat

‹ Méthodes: Close, Save

„ Objet Worksheet (représente une feuille de calcul)


‹ Propriétés: Visible, EnableCalculation

‹ Méthodes: Copy, Delete

„ Objet RANGE (représente une cellule, une ligne, une colonne ou une
sélection de cellules)

‹ Propriétés: Value, Formula

‹ Méthodes: Select, ClearContents

Nguyen Vi CAO Slide No : 26

HEG - Cours Programmation VBA - Nguyen Vi CAO 13


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Utiliser les propriétés et méthodes d’un objet


„ Syntaxe pour modifier la propriété d’un objet
‹ Objet.propriété = nouvelle valeur

‹ Range(«A3»).Value = 4 affecte la valeur 4 à la cellule A3

„ Syntaxe pour interroger la la propriété d’un objet


‹ Variable = Objet.Propriété

‹ ValeurA3 = Range(«A3»).Value affecte à la variable ValeurA3


la valeur de la cellule A3

„ Syntaxe pour appliquer une méthode à un objet


‹ Objet.méthode

‹ Range(«A3»).ClearContents efface le contenu de la cellule A3

Nguyen Vi CAO Slide No : 27

Département Économie
d’entreprise

La sélection

HEG - Cours Programmation VBA - Nguyen Vi CAO 14


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

La sélection

L’objet RANGE représente une cellule, une ligne, une


colonne ou une sélection de cellules

Exemples:

„ Pour sélectionner la plage A3:A6


Range(«A3:A6»).Select

„ Pour sélectionner une plage de cellules contigües


contenant des valeur à partir de la cellule A3
Range("A3").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select

Nguyen Vi CAO Slide No : 29

Département Économie
d’entreprise

Les variables

HEG - Cours Programmation VBA - Nguyen Vi CAO 15


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Types de variables
„ VBA permet de définir plusieurs types de variable

„ Chaque variable correspond à un domaine spécifique

Integer Entier (intervalle restreint)


Long Entier (intervalle étendu)
Single Réel (intervalle restreint)
Double Réel (intervalle étendu)
String Chaîne de caractères
Boolean Logique

Nguyen Vi CAO Slide No : 31

Cours
Programmation
Département Économie
VBA d’entreprise

Déclaration de variables

Syntaxe Dim NomVariable As Type


‹ Exemples

Š Dim TxIntérêt AS Single

Š Dim NbPeriode AS Integer

„ La déclaration de variable est conseillée

„ Mais elle n’est pas obligatoire

„ Une variable non déclarée peut être affectée à des


valeurs de n’importe quel type

Nguyen Vi CAO Slide No : 32

HEG - Cours Programmation VBA - Nguyen Vi CAO 16


Haute École de Gestion 05/10/2007

Département Économie
d’entreprise

Les interactions

Cours
Programmation
Département Économie
VBA d’entreprise

Les interactions

„ L’instruction Msgbox(arguments) affiche une


fenêtre avec un texte à l’écran
‹ Ex: Msgbox(« Merci !») affiche une fenêtre avec le
texte « Merci ! » à l’écran

Nguyen Vi CAO Slide No : 34

HEG - Cours Programmation VBA - Nguyen Vi CAO 17


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Les interactions

„ L’instruction Inputbox(arguments) affiche une fenêtre


permettant aux utilisateurs de saisir une donnée
‹ Inputbox(« Entrez le taux intérêt ») affiche une fenêtre
avec le texte « Entrez le taux intérêt » et permet à
l’utilisateur de saisir une valeur

‹ TxInt = Inputbox(« Entrez le taux intérêt ») affecte la


valeur saisie par l’utilisateur à la variable TxInt

Nguyen Vi CAO Slide No : 35

Cours
Programmation
Département Économie
VBA d’entreprise

Exercice: modèles Epargne2

„ Ouvrir le modèle Epargne1

„ Enregistrer sous le nom Epargne2

„ En utilisant l’instruction InputBox, modifier la procédure


Epargne pour permettre à l’utilisateur de saisir
‹ Le capital initial

‹ Le taux d’intérêt

‹ La conversion

„ Renvoyer les valeurs saisies par l’utilisateur dans les cellules de


la feuille où doivent se trouver ces valeurs

Nguyen Vi CAO Slide No : 36

HEG - Cours Programmation VBA - Nguyen Vi CAO 18


Haute École de Gestion 05/10/2007

Département Économie
d’entreprise

Les fonctions

Cours
Programmation
Département Économie
VBA d’entreprise

Les fonctions

„ Permet de retourner une valeur calculée à partir des


arguments

Function Nom [(ListeArguments)] [As type]


[instructions]

[nom = expression]

[instructions]

End Function

Nguyen Vi CAO Slide No : 38

HEG - Cours Programmation VBA - Nguyen Vi CAO 19


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Exercice: modèle Epargne3

„ Ouvrir le modèle Epargne2

„ L’enregistrer sous le nom Epargne3

„ Ecrire une fonction nommée Epargner permettant de


calculer le capital final à partir du capital initial, le taux
d'intérêt et le nombre de périodes
CapitalFinal = CapitalInitial * (1+TauxIntérêt)^NbPériode

„ Renvoyer le capital final obtenu avec cette fonction dans


la feuille à l’endroit où il doit se trouver (en remplaçant
la formule)

Nguyen Vi CAO Slide No : 39

Département Économie
d’entreprise

Les instructions de base

HEG - Cours Programmation VBA - Nguyen Vi CAO 20


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Les conditions

If condition Then
[instructions]

[Else
[instructions]]

End If

Nguyen Vi CAO Slide No : 41

Cours
Programmation
Département Économie
VBA d’entreprise

Exercice: modèle Epargne4

„ Ouvrir le modèle Epargne3

„ L’enregistrer sous le nom Epargne4

„ Modifier la procédure Epargne comme suit


‹ Calculer la conversion en monnaie étrangère en
utilisant l’instruction IF
‹ Si
‹ Renvoyer le résultat obtenu dans la feuille à l’endroit
où il doit se trouver en remplaçant la formule

Nguyen Vi CAO Slide No : 42

HEG - Cours Programmation VBA - Nguyen Vi CAO 21


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Les boucles

While condition
[instructions]

Wend

Nguyen Vi CAO Slide No : 43

Cours
Programmation
Département Économie
VBA d’entreprise

Les boucles

For compteur = début To fin [Step incrément]


[instructions]

Next [compteur]

Nguyen Vi CAO Slide No : 44

HEG - Cours Programmation VBA - Nguyen Vi CAO 22


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Les boucles

Do [{While | Until} condition]


[instructions]

Loop

La syntaxe suivante est également valable:

Do
[instructions]

Loop [{While | Until} condition]

Nguyen Vi CAO Slide No : 45

Cours
Programmation
Département Économie
VBA d’entreprise

Mettre une formule dans une cellule

„ Instruction FORMULA permet d’écrire une formule dans


une cellule ou ensemble de cellules
‹ Ex. Range(« A3 »).FORMULA = («=A1-A2») met la formule
A1-A2 dans la cellule A3

Nguyen Vi CAO Slide No : 46

HEG - Cours Programmation VBA - Nguyen Vi CAO 23


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Exercice: Modèle Epargne5

„ Ouvrir le modèle Epargne4

„ L’enregistrer sous le nom Epargne5

„ Modifier la procédure Epargne pour


‹ Effacer les périodes et les capitaux constitué (les détails)

‹ Permettre aux utilisateurs de saisir un nombre de périodes

‹ Calculer le capital final et le capital de chaque période


(détails)

‹ Ecrire une formule dans une cellule de la feuille pour


calculer le gain (capital final – capital initial)

Nguyen Vi CAO Slide No : 47

Département Économie
d’entreprise

Interface utilisateur

HEG - Cours Programmation VBA - Nguyen Vi CAO 24


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

Userform

„ Concevoir l’interface

„ Dessiner l’interface

„ Coder l’interface

Nguyen Vi CAO Slide No : 49

Département Économie
d’entreprise

Conclusion

HEG - Cours Programmation VBA - Nguyen Vi CAO 25


Haute École de Gestion 05/10/2007

Cours
Programmation
Département Économie
VBA d’entreprise

VBA vs formules

„ Modèle avec formules est plus direct et plus simple


¾ Mais une formule peut être effacée par erreur

„ VBA est plus sûr


¾ Le code permet d’écrire les résultats et les formules dans les cellules

¾ Il est moins accessible aux utilisateurs

„ VBA permet de faire des modèles interactifs


‹ Ce qui est difficile à faire avec des formules

„ VBA permet de faire des boucles


‹ Ce qui est difficile à faire avec des formules, voire l’enregistrement
des macros

Nguyen Vi CAO Slide No : 51

HEG - Cours Programmation VBA - Nguyen Vi CAO 26