Professional Documents
Culture Documents
Visual Basic pour Applications, VBA, est la solution de programmation propose avec les
applications de la suite Office. La connaissance de VBA permet lutilisateur dExcel de tirer
pleinement profit du tableur de Microsoft en en dveloppant les capacits et les fonctionnalits pour ses besoins spcifiques. Matriser Visual Basic pour Applications, cest coup sr
amliorer grandement sa productivit et celle de son entreprise.
Lintgration dans Excel de Visual Basic pour Applications, un environnement de dveloppement intgr complet et professionnel, remonte sa version97. Depuis, Microsoft a confirm
sa volont de faire de VBA un lment part entire des applications Office et la progressivement propos avec lensemble des applications de sa suite bureautique. Visual Basic pour
Applications constitue aujourdhui un langage et un environnement stables et prennes. Office
2013 intgre la version7.1 de Visual Basic (les versions XP, 2003 et 2007 dOffice intgraient
Visual Basic6.3, et la version 2010 intgrait la version 7).
Cet ouvrage traite de la programmation des versions 97 2013 dExcel. Sauf exception signale,
les explications et les exemples proposs sont valides pour toutes versions dExcel. En effet,
dune version lautre, il ny a pas eu de rvolution. Le modle dobjets sest affin et les
nouvelles fonctions dExcel, apparues au cours des diffrentes versions du logiciel, peuvent
galement tre manipules via la programmation VBA. Cependant, le langage, la gestion des
programmes, lenvironnement et les outils au service du dveloppeur bref, tout ce que vous
devez savoir pour programmer Excel et que cet ouvrage se propose de vous apprendre restent
inchangs dune version lautre.
Donc, que vous utilisiez encore Excel2003 ou que vous soyez pass la version2013, sachez
que vous pourrez appliquer les connaissances que vous aurez acquises lors de la lecture de ce
livre quand vous migrerez dune version lautre dExcel. Mieux, les programmes dvelopps
pour Excel97 fonctionnent avec toutes les versions ultrieures du tableur et, dans la trs grande
majorit des cas, les programmes dvelopps dans Excel2013 devraient fonctionner avec les
versions antrieures.
Dans cet ouvrage, vous dcouvrirez les diffrentes mthodes de cration de projets VBA pour
Excel, Visual Basic (le langage de programmation proprement dit) et les outils de dveloppement
et de gestion intgrs de Visual Basic pour Applications. Votre initiation la programmation
VBA se fera au moyen dexemples de programmes dtaills et comments.
2013 Pearson France Excel et VBA Mikal Bidault
2577-Excel_et_VBA.indb 11
02/05/13 13:10
XII
ition
Dfin
Vous rencontrerez le terme projet tout au long de cet ouvrage. Cest ainsi que lon
nomme un ensemble de programmes dvelopps avec Visual Basic pour Applications.
rpter ou associer certaines commandes plutt que dautres et ignorer certaines fonctionnalits en fonction de lusage personnel que nous avons dun logiciel. VBA permet dassocier
un nombre illimit de commandes une seule. Vous pouvez ainsi ouvrir simultanment
plusieurs documents Excel stocks dans des dossiers ou sur des serveurs diffrents, y insrer
des donnes spcifiques et leur appliquer des mises en forme adaptes, en excutant une
seule commande cre en VBA.
2577-Excel_et_VBA.indb 12
02/05/13 13:10
Introduction XIII
Figure0.1
VBA permet de personnaliser
linterface des applications
Office en y ajoutant icnes
etcommandes de menus.
Automatiser des actions rptitives. Nous sommes parfois amens rpter certaines
oprations plusieurs fois sur un mme document ou ritrer des traitements spcifiques.
Un programme VBA peut, par exemple, mettre en forme des cellules dans un classeur Excel,
effectuer des sries de calculs, etc.
Modifier et amliorer les commandes dune application. Les commandes Excel ne sont
pas toujours adaptes nos besoins ou prsentent parfois des limitations gnantes. Un
programme VBA peut modifier, brider ou complter les commandes dune application. Vous
pouvez ainsi intgrer dans un tableau le nom de lutilisateur, le nombre de pages imprimes
et limprimante utilise chaque fois quune impression est lance partir dExcel.
Faire interagir les diffrentes applications Office. Un programme VBA peut exploiter
des donnes issues de fichiers gnrs par dautres programmes et interagir avec ceux-cide
faon transparente pour lutilisateur. Vous pouvez ainsi crer une commande qui envoie
automatiquement le classeur Excel ouvert en fichier joint dans un mail Outlook des destinataires dfinis ou qui gnre un rapport Word partir de donnes Excel et limprime.
Crer des interfaces personnalises. Les programmes VBA peuvent ramener des tches
complexes la simple information de champs dans des botes de dialogue personnalises
pour lutilisateur final, simplifiant ainsi considrablement le travail de celui-ci, tout en vous
assurant quaucun oubli ou fausse manipulation naura lieu.
Visual Basic pour Applications permet le dveloppement de solutions adaptes vos besoins.
Les outils que vous apprendrez manier vous permettront de dvelopper des programmes
simples, sans crire la moindre ligne de code, comme des programmes complets intgrant une
interface utilisateur adapte.
La fonction dun programme VBA peut tre dautomatiser une tche rptitive. Mais vous
pouvez aussi crer trs vite un petit programme VBA pour faire face une ncessit immdiate;
par exemple, afin de gnraliser un traitement exceptionnel lensemble dun document.
2013 Pearson France Excel et VBA Mikal Bidault
2577-Excel_et_VBA.indb 13
02/05/13 13:10
XIV
Figure0.2
Visual Basic pour Applications vous permet de dvelopper des interfaces utilisateur volues.
Des programmes
Les projets VBA sont des programmes ou macros crits dans le langage Visual Basic. Si vous
ne possdez aucune exprience pralable de programmation, ne vous inquitez pas: cet ouvrage
aborde le dveloppement de projets VBA travers lenregistrement de macros. Lorsque vous
lactivez, lEnregistreur de macro mmorise chacune de vos actions. Cest votre programmeur
personnel: vous utilisez simplement les commandes dExcel et il se charge de traduire les
actions excutes en instructions Visual Basic. Il vous suffit ensuite dexcuter la macro pour
rpter lensemble des commandes enregistres.
ition
Dfin
2577-Excel_et_VBA.indb 14
02/05/13 13:10
Introduction XV
le composent et la faon dont elles sont structures, vous pouvez crer des programmes VBA
et en visualiser ensuite le code.
Un langage de programmation
Les projets VBA sont dvelopps dans le langage de programmation Visual Basic. Vous dcouvrirez par la pratique la structure de ce langage et apprendrez rapidement en discerner les
composants et les relations quils entretiennent. Comme nous lavons dit prcdemment, lenregistrement de macros constitue une excellente initiation Visual Basic. Cest sous cet angle que
nous vous ferons dcouvrir ce langage.
Visual Basic est un langage de programmation orient objet. Nous prsenterons donc les
concepts de la programmation oriente objet (POO). Vous apprendrez ce quest un objet, une
proprit, une mthode ou un module de classe, etc. Vous verrez comment conjuguer ces
lments pour crer des applications Excel souples et puissantes. Visual Basic pour Applications
constitue une bonne approche de la programmation pour le nophyte.
Visual Basic pour Applications intgre un grand nombre dinstructions. Cela permet de
dvelopper des macros susceptibles didentifier trs prcisment ltat de lapplication et
des documents et reproduire lexcution de la plupart des commandes disponibles dans
lapplication hte.
Vous verrez que certaines instructions sont spcifiques Excel. Cest, par exemple, le cas des
instructions permettant daffecter une formule une cellule. Vous nutiliserez probablement
quun nombre limit de ces instructions, en fonction de votre usage personnel dExcel ou des
2013 Pearson France Excel et VBA Mikal Bidault
2577-Excel_et_VBA.indb 15
02/05/13 13:10
XVI
besoins de votre entreprise. Par ailleurs, certaines instructions spcifiques Excel apparatront
presque toujours dans vos macros. Cest, par exemple, le cas de la proprit Range qui renvoie
un objet Excel tel quune cellule ou une plage de cellules.
Dautres instructions sont communes lensemble des applications Office. Cest le cas de celles
qui permettent de rgler le comportement dune macro: raliser des oprations en boucle,
induire des ractions face certains paramtres, afficher des botes de dialogue simples (voir
Figures0.3 et 0.4) ou dvelopper des interfaces utilisateur volues (voir Figure0.1),etc. Ce sont
ces instructions qui constituent vritablement ce quil est convenu dappeler le langage Visual
Basic. Vous aurez besoin dy faire appel ds que vous voudrez crer un programme interactif,
capable de se comporter diffremment selon le contexte. La plupart de ces instructions ne
peuvent tre gnres par enregistrement de macros, et doivent donc tre dites manuellement
dans Visual Basic Editor.
Figure0.3
La fonction VBA MsgBox
permet dafficher une bote
de dialogue.
Figure0.4
Il existe une version VBA
et une version Excel
delafonction InputBox.
Cet ouvrage ne se veut pas un dictionnaire du langage, mais un guide qui vous enseignera le
dveloppement de projets VBA de qualit. Vous apprendrez enregistrer, modifier, excuter
et dboguer des macros, crer des interfaces utilisateur ainsi qu grer vos projets VBA.
Vous dcouvrirez, travers les nombreux exemples de projets VBA de cet ouvrage, un certain
nombre dinstructions spcifiques la hirarchie dobjets dExcel, qui vous familiariseront avec
la logique de ce langage.
ition
Dfin
La hirarchie dobjets dune application, encore appele modle dobjets, est le rapport
quentretiennent entre eux les diffrents objets dune application. Ce concept ainsi que
les notions spcifiques aux langages orients objet seront dvelopps au Chapitre1,
"Notions fondamentales de la programmation oriente objet".
2577-Excel_et_VBA.indb 16
02/05/13 13:10
Introduction XVII
dobjets tudi au Chapitre4. Vous verrez que laide de Visual Basic pour Applications fournit
une rfrence complte du langage, facilement accessible et consultable.
Si vous navez aucune exprience de programmation, peut-tre ce Visual Basic vous apparat-il
comme un langage barbare ou inaccessible. Ne vous inquitez pas: le dveloppement de projets
VBA ne requiert ni exprience pralable de la programmation, ni connaissance globale du
langage. Contentez-vous, au cours de votre lecture, dutiliser les fonctions ncessaires aux
exercices et que nous vous dtaillerons. Cet ouvrage propose un apprentissage progressif et
concret: vous dvelopperez vos premiers projets VBA ds les premiers chapitres.
Un environnement de travail
Visual Basic pour Applications dispose dun environnement de dveloppement part
entire:Visual Basic Editor.
Explorateur
de projet
Fentre
Code
Explorateur
d'objets
Fentre
Proprits
Bote
outils
Fentre
UserForm
Figure0.5
Visual Basic Editor est lenvironnement de dveloppement de Visual Basic pour Applications.
Visual Basic Editor est lenvironnement de dveloppement intgr des applications Office.
Il permet de visualiser et de grer les projets VBA, dcrire, de modifier et de dboguer les
macros existantes, de visualiser comment les commandes propres une application Office
sont traduites en langage Visual Basic, et inversement. Cest aussi un outil de dbogage de vos
projets VBA dune grande efficacit. Visual Basic Editor propose nombre doutils permettant de
tester les macros et den tudier le comportement. Vous pouvez ainsi excuter les commandes
2013 Pearson France Excel et VBA Mikal Bidault
2577-Excel_et_VBA.indb 17
02/05/13 13:10
XVIII
de la macro pas pas, en suivre le droulement, insrer des commentaires dans le texte de la
macro,etc. Enfin, Visual Basic Editor intgre des outils trs intuitifs, ddis au dveloppement
dinterfaces graphiques.
Vous apprendrez dans cet ouvrage utiliser les nombreux outils de Visual Basic Editor toutes
les phases de dveloppement dun projet VBA.
Conventions typographiques
Afin den faciliter la lecture, nous avons adopt dans cet ouvrage un certain nombre de conventions typographiques. Lorsquun mot apparat pour la premire fois, il est compos en italique.
Les programmes et les mots cls du langage Visual Basic apparaissent dans une police chasse
fixe. Lorsque, dans un programme, un mot signale une information attendue dans le code,
celui-ci apparat en italique.
Lorsquune ligne de code ne peut tre inscrite sur une seule ligne de louvrage, cette flche ( )
en dbut de ligne indique que le texte est la poursuite de ligne prcdente.
Par ailleurs, vous rencontrerez au long de cet ouvrage diffrents types de notes, signales dans
la marge par des pictogrammes.
Info
ition
Dfin
ntion
Atte
pel
Rap
Ces rubriques vous mettent en garde contre les risques inhrents telle ou telle
commande ou manipulation.
ce
Astu
Sous cette rubrique, vous trouverez des trucs pour aller plus vite et travailler plus
efficacement.
seil
Con
Nous vous faisons ici part de notre exprience, en vous prodiguant des conseils qui
vous aideront dvelopper des projets VBA de qualit.
it
ibil
pat
Com
2577-Excel_et_VBA.indb 18
02/05/13 13:10