Ricco Rakotomalala
http://eric.univ-lyon2.fr/~ricco/cours/cours_excel.html
R.R. – Université Lyon 2
1
Généralités sur la programmation VBA sous Excel
Programmation sous Excel via VBA (Visual Basic pour Applications)
Fonctions personnalisées.
Complètement standardisée. Valable pour les
autres classeurs et même, si pas d’accès aux
objets spécifiques d’Excel, pour les autres
outils Office.
Macros.
Manipulation directe des objets Excel (classeurs,
feuilles, cellules, graphiques, etc.)
Programmation de tâches
Programmation de séquences d’actions plus
ou moins complexes, faisant intervenir ou
non des mécanismes algorithmiques.
Interfaces graphiques.
Boîtes de dialogues standards. Mais aussi les formulaires
personnalisées pour faciliter les accès aux fonctionnalités.
Nécessite une certaine formalisation et la connaissance
des principes de la programmation évènementielle.
Enregistreur de macros
Transformation de séquences d’action en
programme VBA. Ne nécessite pas la
connaissance de la programmation, mais peu de
souplesse (structure fixe, peu adaptable…)
Programmation des macros
Très puissant. Nécessite la connaissance des
principes de la programmation et de la syntaxe
d’accès aux objets Excel.
Points importants. Connaissance de l’algorithmie, langage de programmation Visual
Basic. Les instructions sont écrites dans des fonctions (function) et procédures (sub),
qui sont regroupées dans des modules. Nous travaillons dans VBE (Visual Basic Editor).
R.R. – Université Lyon 2
2
Généralités sur la programmation
ALGORITHMIE – PROGRAMMATION
R.R. – Université Lyon 2
3
Algorithmie vs. Programmation
Algorithmie
Programme
• Solution « informatique » relative à un
• Transcription d’un algorithme avec une
problème
syntaxe prédéfinie
• Suite d’actions (instructions)
• Visual Basic pour Applications
appliquées sur des données
• Même principes fondamentaux que les
• 3 étapes principales :
1. saisie (réception) des données
2. Traitements
3.
restitution (application) des résultats
autres langages objets (Java, C#, etc.)
• VBA agit en interaction avec les fonctions
prédéfinies disponibles dans la suite Office
R.R. – Université Lyon 2
4
Mode compilé vs. Mode interprété
Langage interprété : + portabilité application ; – lenteur (R, VBA, Python…)
Langage compilé : + rapidité ; – pas portable
(solution possible : write once, compile anywhere ; ex. Lazarus)
Langage pseudo-compilé : + portabilité plate-forme ; – lenteur (?)
(principe : write once, run anywhere ; ex. Java et le principe JIT)
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.
R.R. – Université Lyon 2
5
Etapes de la conception d’un programme (une application)
1. Déterminer les besoins et fixer les objectifs : que doit faire le logiciel, dans quel cadre va-
t-il servir, quels seront les utilisateurs types ? On rédige un cahier des charges avec le
commanditaire du logiciel (Remarque : commanditaire = maître d’ouvrage ; réalisateur =
2. Conception et spécifications : quels sont les fonctionnalités du logiciel, avec quelle
maître d’œuvre)
interface ?
3. Programmation : modélisation et codage
4. Tests : obtient-on les résultats attendus, les calculs sont corrects, y a-t-il plantage et dans
quelles circonstances ? (tests unitaires, tests d’intégration, etc.)
5. Déploiement : installer le chez le client (vérification des configurations, installation de
l’exécutable et des fichiers annexes, etc.)
6. Maintenance : corrective, traquer les bugs et les corriger (patches) ; évolutive (ajouter
des fonctionnalités nouvelles au logiciel : soit sur l’ergonomie, soit en ajoutant de
nouvelles procédures)
R.R. – Université Lyon 2
6
Programme : suite d’instructions manipulant des données
LANGAGE VISUAL BASIC
R.R. – Université Lyon 2
7
Visual Basic possède tous les attributs d’un langage de programmation
Données typées. Visual Basic propose les types usuels de la programmation :
entier, réels, booléens, chaîne de caractères.
Structures avancées de données. Gestion des collections de valeurs
(énumérations, tableaux) et des objets structurés (enregistrements, classes)
Séquences d’instructions, c’est la base même de la programmation, pouvoir
écrire et exécuter une série de commandes sans avoir à intervenir entre les
instructions.
Structures algorithmiques : les branchements conditionnels et les boucles.
Les outils de la programmation structurée : pouvoir regrouper du code dans des
procédures et des fonctions. Organisation du code en modules et possibilité de
distribuer ces dernières.
Visual Basic n’est pas « case sensitive », il ne différencie pas les termes écrits en
minuscule et majuscule.
R.R. – Université Lyon 2
8