You are on page 1of 8

Introduction

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

Excel 2013 et VBA

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.

VBA7: 64bits vs 32bits


La suite Office est propose en deux versions : 32bits et 64bits. Ces deux versions sont pour ainsi
dire indiffrenciables : seule la gestion de la mmoire varie dune version lautre, autorisant
la manipulation de fichiers nettement plus volumineux avec la version 64bits. Cependant,
Microsoft recommande linstallation de la version32 bits, y compris sur un systme dexploitation 64bits, notamment pour des raisons de compatibilit des complments (comme les
macros VBA) avec les versions prcdentes. Cest daillleurs la version 32bits qui est installe
par dfaut, et les utilisateurs souhaitant installer la version 64bits doivent parcourir le CD afin
dexcuter le fichier dinstallation correspondant.
Consquence pour le dveloppement de macros Excel: la version7 de VBA est maintenant
une version 64bits, qui intgre le support dun nouveau type de donnes permettant la manipulation des pointeurs (les pointeurs permettent la manipulation des API Windows). Cet ouvrage
nabordant pas la manipulation des API notions rserves aux programmeurs chevronns
cette nouveaut na aucune incidence sur la validit de ce que vous explique ce livre. Les
concepts et techniques de programmation que vous apprendrez ici sont donc compatibles avec
la version 64bits dOffice comme avec les versions 32bits dOffice, sans quil soit ncessaire
dadapter le code.

VBA, pour quoi faire?


Excel offre des possibilits trs tendues. Pourtant, quelle que soit la puissance des fonctions
dExcel, elles ne peuvent rpondre toutes les situations. La programmation VBA est la solution
de personnalisation offerte par Excel, afin dajouter des caractristiques, des fonctions et des
commandes qui rpondent prcisment vos besoins.
La programmation VBA peut tre dfinie comme la personnalisation dun logiciel afin de
sassurer gain de temps, qualit des documents et simplification des tches complexes ou fastidieuses. Voici quelques exemples de ce que permettent les programmes VBA:

Combiner un nombre indtermin de commandes. Nous sommes souvent amens

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.

Ajouter de nouvelles commandes et de nouvelles fonctions Excel. VBA permet de crer


de nouvelles commandes et dajouter des fonctions au tableur par exemple une fonction
personnalise qui permet de calculer les taxes retenir sur un salaire (ou, mieux, les primes
y ajouter),etc. Vous pouvez, en outre, attacher vos programmes VBA des raccourcis
clavier, des icnes et des commandes de menu afin den amliorer laccessibilit.
2013 Pearson France Excel et VBA Mikal Bidault

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

Excel 2013 et VBA

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

Le terme macro dsigne le regroupement dun ensemble de commandes en une seule.


On parle parfois de macrocommandes pour dsigner un programme qui se rsume
lexcution dune srie de commandes, sans gard pour le contexte. Des macros plus
volues peuvent rpter des oprations en boucle, afficher des botes de dialogue
qui autorisent une interaction avec lutilisateur. Ces programmes se comporteront
diffremment en fonction des informations entres ou de ltat du document sur lequel
elles sexcutent.
Le terme projet est plus large. Il dsigne lensemble des lments constituant vos
programmes VBA. Il sagit toujours de macros, mais celles-ci peuvent sajouter des
feuilles qui constituent une interface utilisateur permettant de rcolter des informations de tout type, des modules de classe, et autres friandises que vous dcouvrirez
tout au long de cet ouvrage.

Lenregistrement de macros constitue sans aucun doute le meilleur moyen de se familiariser


avec la programmation en Visual Basic. Ainsi, sans connatre le langage les instructions qui
2013 Pearson France Excel et VBA Mikal Bidault

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.

Une application hte et des projets


Visual Basic pour Applications est un environnement de dveloppement calqu sur Visual Basic,
un outil de dveloppement dapplications Windows. Les structures de contrle du langage sont
les mmes et lenvironnement proprement dit (Visual Basic Editor) est pour ainsi dire identique
celui de Visual Basic. Mais, contrairement Visual Basic, Visual Basic pour Applications
est conu pour des applications. Cela signifie que, tandis que les programmes Visual Basic
sont autonomes, les programmes VBA ne peuvent tre excuts qu partir dune application
intgrant cet environnement de dveloppement Excel ou une autre application.
Lorsque vous dveloppez un programme VBA, vous lattachez une application. Il sagit de
lapplication hte du programme. Plus prcisment, vos programmes VBA sont attachs
un document (un fichier ou un modle Word, une feuille de calcul Excel, une prsentation
PowerPoint) spcifique lapplication hte. Lensemble des programmes VBA attachs un
document constitue un projet. Un projet regroupe des macros, mais peut galement intgrer
des interfaces utilisateur, des dclarations systme,etc. Un projet constitue en fait la partie
VBA dun document. Si cet ouvrage ne traite que de la programmation pour Excel, sachez
quun programme VBA peut tre attach une autre application. Les concepts et les outils que
vous dcouvrirez au long de cet ouvrage sont valides pour toutes les applications de la suite
Office. Pour excuter une macro VBA, vous devez avoir accs au document auquel elle est
attache. Vous pouvez choisir de rendre certaines macros disponibles partir de nimporte quel
document Excel ou en limiter laccessibilit un classeur Excel spcifique. La disponibilit des
programmes VBA est aborde au Chapitre2.

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

Excel 2013 et VBA

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".

En revanche, ce livre prsente et illustre dexemples comments lensemble des structures de


contrle qui permettront de crer trs simplement des macros volues. Nous vous fournirons
les bases du langage Visual Basic. Elles suffisent pour crer une infinit de macros et rpondre
vos besoins spcifiques.
Lorsque les principes du dveloppement de projets VBA vous seront acquis et que vous crerez
vos propres macros, il vous arrivera srement davoir besoin dinstructions que vous naurez pas
rencontres lors de la lecture de cet ouvrage; vous pourrez alors utiliser lEnregistreur de macro
ou encore les rechercher dans laide de Visual Basic pour Applications ou dans lExplorateur
2013 Pearson France Excel et VBA Mikal Bidault

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

Excel 2013 et VBA

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 apportent un complment dinformation en rapport avec le sujet trait.


Leur lecture nest pas indispensable. Mais elles peuvent vous aider mieux cerner
lesujet.
Vous trouverez sous ces rubriques la dfinition de termes techniques spcifiques la
programmation VBA.

Ces rubriques vous mettent en garde contre les risques inhrents telle ou telle
commande ou manipulation.

Il est parfois ncessaire de se rafrachir la mmoire. Lorsquun sujet fait appel


des connaissances acquises plusieurs chapitres auparavant, cette rubrique vous les
remmore brivement.

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

Ces notes prodiguent des informations spcifiques aux versions antrieures


Office2010.

2013 Pearson France Excel et VBA Mikal Bidault

2577-Excel_et_VBA.indb 18

02/05/13 13:10

You might also like