Excel-VBA-

download Excel-VBA-

of 568

Transcript of Excel-VBA-

  • Dveloppez des macros compatibles avec toutes les versions dExcel (de 1997 2010)

    Excel et VBAMicrosoft

    Mikal Bidault

    odes sourcessur www.pearson.fr

    CCCCCCsus rr wwww

  • Mikal Bidault

    Microsoft

    Excel & VBA

    L E P R O G R A M M E U R

  • Pearson Education France a apport le plus grand soin la ralisation de ce livre afin de vous fournir une information complte et fiable. Cependant, Pearson Education France nassume de responsa-bilits, ni pour son utilisation, ni pour les contrefaons de brevets ou atteintes aux droits de tierces personnes qui pourraient rsulter de cette utilisation.

    Les exemples ou les programmes prsents dans cet ouvrage sont fournis pour illustrer les descrip-tions thoriques. Ils ne sont en aucun cas destins une utilisation commerciale ou professionnelle.

    Pearson Education France ne pourra en aucun cas tre tenu pour responsable des prjudices ou dommages de quelque nature que ce soit pouvant rsulter de lutilisation de ces exemples ou programmes.

    Tous les noms de produits ou marques cits dans ce livre sont des marques dposes par leurs propritaires respectifs.

    Publi par Pearson Education France47 bis, rue des Vinaigriers75010 PARISTl. : 01 72 74 90 00www.pearson.fr

    Mise en pages : TyPAOCollaboration ditoriale : Herv Guyader

    ISBN : 978-2-7440-4158-7Copyright 2010 Pearson Education FranceTous droits rservs

    Aucune reprsentation ou reproduction, mme partielle, autre que celles prvues larticle L. 122-5 2 et 3 a) du code de la proprit intellectuelle ne peut tre faite sans lautorisation expresse de Pearson Education France ou, le cas chant, sans le respect des modalits prvues larticle L. 122-10 dudit code.

  • Sommaire

    Introduction ......................................................... 1

    Partie I Dcouvrir la programmation Excel ................................................................... 11

    1. Notions fondamentales de la programmation

    oriente objet ................................................ 13

    2. Premires macros .......................................... 35

    3. Dplacement et slection dans une macro

    Excel ............................................................. 63

    4. Dcouvrir Visual Basic Editor ...................... 85

    Partie II Programmeren Visual Basic .......... 127

    5. Dvelopper dans Visual Basic Editor............ 129

    6. Variables et constantes .................................. 173

    7. Contrler les programmes VBA ................... 209

    8. Fonctions Excel et VBA ............................... 257

    9. Manipulation des chanes de caractres ........ 275

    10. Dbogage et gestion des erreurs ................... 293

    11. Intgrer des applications VBA dans linterface dExcel ................................ 317

    Partie III Dvelopper des interfaces utilisateur ........................................................... 327

    12. Crer des interfaces utilisateur...................... 329

    13. Exploiter les proprits des contrles ActiveX ......................................................... 359

    14. Matriser le comportement des contrles ...... 401

    Partie IV Notions avances de la programmation Excel .............................. 437

    15. Programmer des vnements Excel .............. 439

    16. Protger et authentifier des projets VBA ...... 451

    17. Exemple complet dapplication Excel .......... 475

    Annexe

    Mots cls pour la manipulation de fichiers et de dossiers ....................................................... 535

    Index ................................................................... 539

  • Introduction ....................................................... 1

    VBA7: 64bits vs 32bits .............................. 2

    VBA, pour quoi faire? ................................... 3

    Des programmes .............................................. 5

    Une application hte et des projets .................. 5

    Un langage de programmation ........................ 6

    Un environnement de travail ............................ 8

    Conventions typographiques .......................... 9

    Codes sources en ligne .................................. 10

    I Dcouvrir la programmation Excel 11

    1. Notions fondamentales de la programmation oriente objet ................................................ 13

    Comprendre le concept dobjet ...................... 14

    Objets et collections dobjets ........................... 14

    Application hte et modles dobjets ............... 16

    Accder aux objets ........................................... 19

    Les proprits ................................................... 21

    Les mthodes .................................................... 27

    Les vnements ................................................. 28

    Les fonctions .................................................... 29

    Le modle dobjets dExcel ........................... 29

    2. Premires macros ......................................... 35

    Crer une macro GrasItalique ........................ 36

    Afficher longlet Dveloppeur .......................... 37

    Dmarrer lenregistrement ............................... 38

    Enregistrer les commandes de la macro .......... 40

    Excuter la macro ............................................ 40

    Structure de la macro ....................................... 42

    Amliorer la macro .......................................... 47

    Une autre mthode denregistrement ............. 49

    Enregistrement ................................................. 50

    Structure de la macro ....................................... 50

    crire la macro .............................................. 51

    Excution de la macro ...................................... 53

    Choisir laccessibilit des macros .................. 53

    Accessibilit globale ou limite........................ 53

    Classeurs et modles ........................................ 54

    Le classeur de macros personnel ..................... 55

    Les macros complmentaires ........................... 56

    Dfinir le classeur de stockage lors de lenregistrement dunemacro........................... 60

    Accder aux macros dun classeur spcifique.. 60

    Table des matires

  • VI Excel et VBA

    3. Dplacement et slection dans une macro Excel .................................. 63

    Mthodes de slection dans une feuille Excel .............................................................. 64

    Clavier .............................................................. 64

    Souris ............................................................... 66

    Notion de cellule active .................................... 66

    Rfrences relatives et rfrences absolues ..... 67

    Coder les dplacements effectus lors de lenregistrement dune macro ................... 69

    Rfrence absolue aux cellules ........................ 69

    Rfrence relative aux cellules ......................... 78

    Rfrence aux cellules fonction de leur contenu ................................................. 80

    Rfrence aux plages de cellules nommes ...... 83

    4. Dcouvrir Visual Basic Editor .................... 85

    Accder Visual Basic Editor........................ 86

    Les outils et les fentres de Visual Basic Editor .................................... 88

    LExplorateur de projet .................................... 89

    LExplorateur dobjets ..................................... 92

    La fentre UserForm ........................................ 100

    La fentre Code ................................................ 102

    La fentre Proprits ........................................ 116

    Les barres doutils ............................................ 121

    Paramtrer Visual Basic Editor ...................... 124

    II Programmer en Visual Basic 127

    5. Dvelopper dans Visual Basic Editor ......... 129

    Structure des programmes Visual Basic ......... 130

    Les modules ...................................................... 130

    Les procdures ................................................. 131

    Les instructions ................................................ 133

    Les diffrents types de procdures ................. 136

    Procdures Sub ................................................ 136

    Procdures Function ........................................ 141

    Procdures Property ......................................... 143

    Des projets bien structurs ............................. 149

    Ajouter un module ............................................ 149

    Supprimer un module ....................................... 151

    Crer une procdure ....................................... 152

    crire linstruction de dclaration ................... 152

    La bote de dialogue Ajouter une procdure .... 153

    La notion de porte .......................................... 154

    criture et mise en forme du code .................... 155

    Dplacer une procdure ................................... 161

    Appel et sortie dune procdure ..................... 162

    Appel dune procdure Sub .............................. 162

    Appels de procdures Function et Property ..... 163

    Passage darguments ........................................ 164

    Sortie dune procdure ..................................... 166

    Sortie dun programme .................................... 167

    Excuter du code ............................................ 168

    Aide lcriture de code ................................ 169

    Vrification automatique de la syntaxe ............ 169

    Complment automatique des instructions ...... 170

    Info express automatique ................................. 171

    6. Variables et constantes ................................. 173

    Dclarer une variable ..................................... 174

    Dclaration implicite ...................................... 174

    Dclaration explicite ........................................ 175

    Types de donnes des variables .................... 178

    Chanes de caractres ...................................... 178

    Valeurs numriques .......................................... 180

    Valeurs boolennes ........................................... 183

    Dates ................................................................ 184

    Type Variant ...................................................... 185

    Variables de matrice......................................... 185

    Variables objet.................................................. 190

    Types de donnes personnaliss ....................... 195

  • Table des matires VII

    Constantes ........................................................ 197

    Validation et conversion des types de donnes 198

    Porte et dure de vie des variables ............... 201

    Porte de niveau procdure .............................. 201

    Porte de niveau module prive ....................... 201

    Porte de niveau module publique ................... 202

    Variables statiques ........................................... 203

    Traitement interapplications laide de variables objet ........................................... 203

    7. Contrler les programmes VBA ................. 209

    Rpter une srie dinstructions: les boucles 210

    La boucle While...Wend ................................... 210

    La boucle Do...Loop ........................................ 215

    La boucle For...Next ......................................... 218

    La boucle For Each...Next ................................ 224

    Utiliser des instructions conditionnelles ........ 228

    La structure de contrle If...Then...Else .......... 228

    La structure de contrle Select Case ................ 233

    Dfinir linstruction suivante avec GoTo ....... 234

    Interagir avec lutilisateur via des botes de dialogue ..................................................... 235

    La fonction InputBox ....................................... 235

    La mthode InputBox ....................................... 239

    La fonction MsgBox......................................... 241

    Affichage de botes de dialogue Excel .............. 246

    Utiliser les oprateurs logiques ...................... 252

    Trier des donnes ........................................... 253

    8. Fonctions Excel et VBA ............................... 257

    Utiliser les fonctions Excel dans VBA ........... 258

    Crer des fonctions Excel personnalises ...... 258

    Intgrer une fonction via lExplorateur dobjets ........................................................... 260

    Insrer une fonction VBA dans votre code ....... 260

    Insrer une fonction Excel dans votre code ..... 261

    Recommandations pour lcriture de fonctions Excel .............................................................. 263

    Les limites de la cellule .................................... 263

    Principales fonctions VBA ............................. 264

    9. Manipulation des chanes de caractres .... 275

    Modifier des chanes de caractres ................ 276

    Concatner des chanes ................................... 276

    Insrer des caractres non accessibles au clavier 278

    Rpter une srie de caractres ....................... 280

    Supprimer les espaces superflus dune chane . 280

    Extraire une partie dune chane ..................... 281

    Effectuer des remplacements au sein dune chane ........................................ 282

    Modifier la casse des chanes de caractres .... 283

    Comparer des chanes de caractres .............. 283

    Rechercher dans les chanes de caractres ..... 286

    Rechercher une chane dans une chane .......... 286

    Rechercher une chane dans une variable de matrice ......................................................... 289

    10. Dbogage et gestion des erreurs ................. 293

    Les tapes et les outils du dbogage .............. 294

    Test du projet .................................................... 295

    Excuter pas pas ........................................... 297

    La fentre Variables locales ............................. 298

    Les points darrt ............................................. 300

    Modifier lordre dexcution des instructions .. 301

    La fentre Excution ........................................ 301

    Les espions ....................................................... 302

    La pile des appels ............................................ 304

    Exemple de dbogage .................................... 305

    Recherche du bogue ......................................... 307

    Rsolution du bogue ......................................... 308

    Gestion des erreurs et des exceptions ............ 312

    Exemple de gestion derreur .......................... 313

  • VIII Excel et VBA

    11. Intgrer des applications VBA dans linterface dExcel ........................................................... 317

    Affecter une macro un raccourci clavier ..... 318

    Personnaliser le ruban et la barre doutils Accs rapide ................................................... 319

    Personnaliser les barres doutils dans les versions antrieures Excel 2007 .... 321

    Personnaliser les menus dans les versions antrieures Excel 2007 ................................ 323

    Affecter une macro un objet ........................ 325

    III Dvelopper des interfaces utilisateur 327

    12. Crer des interfaces utilisateur .................................................... 329

    Les phases de dveloppement de feuilles ...... 331

    Crer une feuille ............................................. 331

    Les contrles de la bote outils .................... 333

    Outil Slection .................................................. 334

    Contrle Label ................................................. 334

    Contrle TextBox ............................................. 334

    Contrle ComboBox ........................................ 335

    Contrle Frame ................................................ 335

    Contrle ListBox .............................................. 336

    Contrle CheckBox .......................................... 336

    Contrle OptionButton ..................................... 337

    Contrle ToggleButton ..................................... 338

    Contrle CommandButton ............................... 338

    Contrle TabStrip ............................................. 338

    Contrle MultiPage .......................................... 339

    Contrle ScrollBar ........................................... 340

    Contrle SpinButton ........................................ 340

    Placer des contrles sur une feuille ................ 341

    Copier-coller des contrles .............................. 344

    Slectionner plusieurs contrles ...................... 345

    Supprimer des contrles ................................... 345

    Mise en forme des contrles .......................... 346

    La grille ............................................................ 346

    Aligner les contrles ........................................ 347

    Uniformiser la taille des contrles ................... 348

    Uniformiser lespace entre les contrles.......... 349

    Centrer les contrles ........................................ 350

    Rorganiser les boutons ................................... 351

    Grouper ou sparer des contrles .................... 351

    Personnaliser la bote outils ........................ 352

    Ajouter/supprimer un contrle ......................... 353

    Ajouter/supprimer une page ............................. 355

    Afficher/masquer une feuille.......................... 357

    13. Exploiter les proprits des contrles ActiveX ................................... 359

    Proprit Name .............................................. 361

    Apparence ...................................................... 362

    Alignment......................................................... 362

    BackColor ........................................................ 363

    BackStyle ......................................................... 363

    BorderColor ..................................................... 363

    BorderStyle ...................................................... 364

    Caption ............................................................. 364

    ControlTipText ................................................. 365

    ForeColor ......................................................... 365

    SpecialEffect .................................................... 366

    Style ................................................................. 366

    Value................................................................. 367

    Visible .............................................................. 369

    Comportement................................................ 372

    AutoSize ........................................................... 372

    AutoTab ............................................................ 373

    AutoWordSelect ............................................... 374

    Cancel............................................................... 374

    Default .............................................................. 375

    Enabled............................................................. 375

    EnterKeyBehavior ............................................ 377

  • Table des matires IX

    HideSelection ................................................... 377

    Locked .............................................................. 378

    MaxLenght ....................................................... 378

    MultiLine ......................................................... 379

    SelectionMargin ............................................... 379

    Style ................................................................. 380

    TabKeyBehavior ............................................... 380

    TextAlign.......................................................... 381

    TripleState ........................................................ 381

    WordWrap ........................................................ 382

    Dfilement ...................................................... 382

    ScrollBars ......................................................... 382

    KeepScrollsVisible ........................................... 384

    Delay ................................................................ 384

    Max et Min ....................................................... 385

    SmallChange .................................................... 386

    LargeChange .................................................... 386

    Divers ............................................................. 387

    Accelerator ....................................................... 387

    GroupName ...................................................... 388

    HelpContextID ................................................. 388

    MouseIcon ........................................................ 388

    MousePointer ................................................... 389

    TabIndex ........................................................... 391

    TabStop ............................................................ 392

    Tag .................................................................... 393

    Emplacement.................................................. 393

    Height et Width ................................................ 393

    Left et Top ........................................................ 393

    StartUpPosition ................................................ 394

    Image.............................................................. 395

    Picture .............................................................. 395

    PictureAlignment ............................................. 396

    PictureSizeMode .............................................. 397

    PicturePosition ................................................. 398

    PictureTiling ..................................................... 398

    Police.............................................................. 399

    Font .................................................................. 399

    1 14

    14. Matriser le comportement des contrles 401

    Crer des procdures vnementielles ........... 402

    Crer une procdure ......................................... 402

    Les vnements ................................................. 408

    Exemples dexploitation des contrles .......... 415

    Contrle Label ................................................. 415

    Contrle TextBox ............................................. 418

    Contrle ComboBox ........................................ 421

    Contrle ListBox .............................................. 426

    Contrles CheckBox et OptionButton ............. 429

    Contrle ScrollBar ........................................... 430

    Contrle SpinButton ........................................ 432

    Exploiter les informations dune feuille VBA ... 435

    IV Notions avances de la programmation Excel 437

    15. Programmer des vnements Excel .......... 439

    Lobjet Application ........................................ 440

    Dclaration et instanciation de lobjet Application ....................................................... 440

    Cration de procdures vnementielles de niveau application ....................................... 441

    Proprits de lobjet Application ..................... 443

    Mthodes de lobjet Application ...................... 445

    Lobjet ThisWorkbook ................................... 445

    Lobjet Worksheet .......................................... 448

    16. Protger et authentifier des projets VBA .. 451

    Les virus macro .............................................. 452

    Se protger des virus macros ......................... 452

    Dfinir un niveau de scurit dans Excel 2010 et Excel 2007 .................................................... 452

  • X Excel et VBA

    Dfinir un niveau de scurit avec Excel 2000, XP et 2003 ............................ 455

    Les signatures numriques ............................... 456

    Effectuer des sauvegardes des macros ............. 457

    Protger laccs aux macros ........................... 459

    Verrouiller un projet ......................................... 459

    Limiter les droits dexcution dune macro...... 460

    Authentifier ses macros .................................. 472

    Obtenir une authentification ............................ 472

    Authentifier une macro ..................................... 473

    17. Exemple complet dapplication Excel ...... 475

    Prsenter un projet dapplication Excel ......... 476

    Avant de commencer ........................................ 477

    Identification des informations recueillir ...... 477

    Dfinition de la structure du programme ......... 479

    Crer un modle Excel ................................... 485

    Dfinir et crer des interfaces ........................ 486

    Feuille fmContratAuteur .................................. 487

    Feuille fmContratConditions ............................ 500

    Feuille fmContratDates .................................... 514

    Feuille fmContratImpression ........................... 520

    Feuille fmContratFin ........................................ 527

    crire des procdures ddition de documents ................................................. 528

    dition des feuilles de paie .............................. 529

    Mise jour du Tableau Word ........................... 531

    Annexe. Mots cls pour la manipulation de fichiers et de dossiers ................................... 535

    Index ................................................................... 539

  • 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 fonc-tionnalits 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 dveloppe-ment 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 progressi-vement propos avec lensemble des applications de sa suite bureautique. Visual Basic pour Applications constitue aujourdhui un langage et un environnement stables et prennes.

    Bien que certains dveloppeurs demandaient le remplacement de VBA par VB.net, Micro-soft confirme, avec Office 2010, sa volont de maintenir VBA comme solution de program-mation des applications Office, puisque la nouvelle suite Office intgre la version7 de Visual Basic (les versions XP, 2003 et 2007 dOffice intgraient Visual Basic6.3). gale-ment confirm dans cette version, le nouvel environnement apparu avec Office 2007 et le remplacement des menus "classiques" des versions prcdentes par un systme de "ruban" et d"onglets".

    Cet ouvrage traite de la programmation VBA dExcel 2010, mais, sauf exception signale, les explications et les exemples proposs sont aussi valides pour les versions97, 2000, XP, 2003 et 2007 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

  • 2 Excel et VBA

    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 version2010, 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, sauf exception, les programmes dvelopps dans Excel2010 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 initia-tion la programmation VBA se fera au moyen dexemples de programmes dtaills et comments.

    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 32bitsPour la premire fois de son histoire, 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 utilisa-teurs 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.

    Dfinition

  • Introduction 3

    VBA, pour quoi faire?Excel offre des possibilits trs tendues. Pourtant, quelle que soit la puissance des fonc-tions 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.

    FigureI.1VBA permet de personnaliser linterface des applications Office en y ajoutant icnes et commandes de menus.

  • 4 Excel et VBA

    Automatiser des actions rptitives. Nous sommes parfois amens rpter certaines oprations plusieurs fois sur un mme document ou ritrer des traitements spci-fiques. 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 applica-tion. 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-ci de 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 person-nalises pour lutilisateur final, simplifiant ainsi considrablement le travail de celui-ci, tout en vous assurant quaucun oubli ou fausse manipulation naura lieu.

    FigureI.2Visual Basic pour Applications vous permet de dvelopper des interfaces utili -sateur volues.

  • Introduction 5

    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.

    Des programmesLes 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.

    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 pro-grammes 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 sajou-ter 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 familiari-ser avec la programmation en Visual Basic. Ainsi, sans connatre le langage les instruc-tions qui 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 projetsVisual Basic pour Applications est un environnement de dveloppement calqu sur Visual Basic, un outil de dveloppement dapplications Windows. Les structures de contrle du

    Dfinition

  • 6 Excel et VBA

    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 spci-fique. La disponibilit des programmes VBA est aborde au Chapitre2.

    Un langage de programmationLes 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 discer-ner les composants et les relations quils entretiennent. Comme nous lavons dit prcdem-ment, 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 probable-ment quun nombre limit de ces instructions, en fonction de votre usage personnel dExcel

  • Introduction 7

    ou des 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 dialo-gue simples (voir FiguresI.3 et I.4) ou dvelopper des interfaces utilisateur volues (voir FigureI.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.

    FigureI.3La fonction VBA MsgBox permet dafficher une bote de dialogue.

    FigureI.4Il existe une version VBA et une version Excel de la fonction 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 fami-liariseront avec la logique de ce langage.

    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 orien-te objet".

    Dfinition

  • 8 Excel et VBA

    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 four-nirons 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 Applica-tions ou dans lExplorateur 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 appa-rat-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 apprentis-sage progressif et concret: vous dvelopperez vos premiers projets VBA ds les premiers chapitres.

    Un environnement de travailVisual Basic pour Applications dispose dun environnement de dveloppement part entire: Visual Basic Editor.

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

  • Introduction 9

    FigureI.5Visual Basic Editor est lenvironnement de dveloppement de Visual Basic pour Applications.

    Bote outils

    FentreProprits

    FentreCode

    Explorateurde projet

    Explorateurd'objets

    FentreUserForm

    Conventions typographiquesAfin 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.

    Ces rubriques apportent un complment dinformation en rapport avec le sujet trait. Leur lecture nest pas indispensable. Mais elles peuvent vous aider mieux cerner le sujet.

    Info

  • 10 Excel et VBA

    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.

    Sous cette rubrique, vous trouverez des trucs pour aller plus vite et travailler plus efficacement.

    Nous vous faisons ici part de notre exprience, en vous prodiguant des conseils qui vous aideront dvelopper des projets VBA de qualit.

    Ces notes prodiguent des informations spcifiques aux versions antrieures Office2010.

    Codes sources en ligne Vous trouverez sur le site Pearson (www.pearson.fr), la page consacre cet ouvrage, les codes sources des applications VBA dveloppes dans ce livre.

    Dfinition

    Attention

    Rappel

    Astuce

    Conseil

    Compati

    bilit

  • IDcouvrir la programmation ExcelChapitre 1. Notions fondamentales de la programmation oriente objet

    Chapitre 2. Premires macros

    Chapitre 3. Dplacement et slection dans une macro Excel

    Chapitre 4. Dcouvrir Visual Basic Editor

  • 1Notions fondamentales de la programmation oriente objet

    Au sommaire de ce chapitre

    Comprendre le concept dobjet Le modle dobjets Excel

  • 14 Excel et VBA

    Visual Basic est un langage de programmation orient objet. En tant que tel, il repose sur des concepts communs tous les langages de programmation orients objet. Avant de vous lancer dans la programmation pour Excel, il est important de vous familiariser avec ces concepts et le vocabulaire qui les dcrit. Plus concrtement, ce chapitre vous fera dcou-vrir les diffrents composants du langage Visual Basic en tant que langage orient objet et comment ils sarticulent pour crer des programmes VBA puissants.

    Vous ne trouverez pas dans ce chapitre de programmes VBA. Il est destin vous faire acqurir les bases et la terminologie sur lesquelles nous nous appuierons tout au long de cet ouvrage. Alors, patience! Les connaissances quil vous apportera permettront dapprhender vos premiers programmes ds le Chapitre2.

    Comprendre le concept dobjetComme pour tous les langages de programmation objet, les objets sont le fondement de Visual Basic. Quelle que soit la fonction dun programme VBA, presque toutes les actions quil excute sapparentent la modification dobjets.

    Les ouvrages prsentant la programmation oriente objet (POO) le font presque toujours par analogie avec les objets de la vie relle. Nous ne drogerons pas cette rgle. La program-mation oriente objet repose en effet sur une structure qui rappelle, par de nombreux points, les objets de la vie courante et les rapports quils entretiennent. Lanalogie avec les objets de la vie relle rend simples et faciles daccs des concepts qui, abords de faon abstraite, vous apparatraient probablement obscurs.

    Objets et collections dobjetsDans la vie, un objet peut tre tout et nimporte quoi. Ce qui caractrise un objet, cest son existence physique, ses proprits spcifiques, son comportement et les actions que lon peut excuter sur celui-ci. Une voiture est un objet. Lorsque vous parlez de lobjet Voiture, vous pouvez faire rfrence un objet abstrait ("Je vais acheter une voiture") comme une voiture bien concrte ("Mate un peu ma belle 2CV rouge"). Les objets que vous utiliserez dans vos programmes VBA rpondent une mme dfinition.

    Dans le premier cas, vous voquez un objet Voiture imprcis, et pourtant tout le monde comprend de quoi vous parlez. Il vous suffit de prononcer le mot "voiture" pour que chacun imagine et visualise une voiture bien spcifique, en fonction de ses gots, de ses aspi rations, de ses souvenirs,etc. Cependant, quelle que soit la voiture imagine, en tant quobjet Voiture, elle possde un certain nombre de proprits (une carrosserie, des roues, un moteur,etc.) et autorise un certain nombre de mthodes (dmarrer, freiner, tourner,etc.) qui permettent den matriser le comportement.

  • Chapitre 1 Notions fondamentales de la programmation oriente objet 15

    Ce sont ces proprits et ces mthodes, communes toutes les voitures, qui dfinissent lobjet Voiture. Elles sont sous-entendues, videntes et essentielles. Il existe donc des milliers de voitures diffrentes, toutes reconnaissables par un certain nombre de caractris-tiques communes dfinies dans le concept (lobjet) Voiture. En POO, cet objet abstrait est appel la classe Voitures. La classe Voitures est la dfinition formelle des objets Voiture (leurs proprits et leurs mthodes). Il sagit du modle partir duquel vous pouvez imagi-ner et crer des milliers de voitures diffrentes. Lensemble des vhicules appartenant la classe Voitures (parce quils possdent les proprits et les mthodes dfinies dans cette classe) est appel la collection dobjets Voitures.

    Une collection porte le nom pluriel des objets quelle rassemble.

    Ainsi, la collection WorkBooks renvoie tous les objets Workbook, soit tous les classeurs ouverts, la collection Sheets, toutes les feuilles dun objet WorkBook, la proprit Worksheets, toutes les feuilles de calcul dun objet Workbook, etc. La section "Le modle dobjets dExcel" situe en fin de chapitre vous permettra de dcouvrir les objets Excel les plus importants.

    Le terme Classe dsigne la dfinition commune dun ensemble dobjets (quest-ce quune voiture?), tandis quune Collection dsigne lensemble des objets appartenant une classe (toutes les voitures en circulation).

    Lorsque vous parlez dacheter la 2CV rouge de vos rves, vous voquez une voiture concrte, bien spcifique. Vous crez une instance on parle aussi dune occurrence de lobjet Voiture. Elle possde toutes les proprits de la classe Voitures, mais ces propri-ts sont attaches des valeurs prcises. La carrosserie est rouge, la vitesse maximale est de x km/h,etc. Vous pouvez matriser le comportement de votre voiture laide des mthodes dfinies dans la classe Voitures (Acclrer, Freiner), mais leffet prcis de ces mthodes est troitement li aux proprits de votre voiture. La puissance du moteur ne permet pas datteindre 200km/h (mais vous pouvez dcapoter!); les freins ne sont pas quips du systme ABS, il faut donc telle distance pour freiner,etc.

    Un programme VBA peut ainsi crer une feuille de calcul Excel en appliquant la mthode Add (ajouter) la collection WorkBooks et dterminer les proprits de ce classeur (son nom, ses options de protection,le nombre de feuilles qui le composent,etc.)

    Info

    Dfinition

  • 16 Excel et VBA

    Lorsque vous crez une instance dobjet, cet objet possde toutes les propri-ts et mthodes dfinies dans la classe de lobjet. Ce principe essentiel de la programmation oriente objet est appel instanciation.

    Le grand intrt de la programmation oriente objet est quil nest pas utile de savoir comment fonctionne un objet pour lutiliser. Lorsque vous achetez une voiture, vous navez pas besoin de savoir comment la carrosserie et le moteur ont t fabriqus, ni comment les diffrents composants sont assembls, vous vous contentez de choisir un modle, une couleur,etc. Il vous suffit de connatre les mthodes propres la classe Voitures pour luti-liser. Avec VBA, lorsque vous crez une instance dun objet, vous en dfinissez les propri-ts sans vous proccuper de la faon dont celles-ci seront appliques. Il en va de mme pour les mthodes que vous utilisez pour matriser le comportement dun objet. Lorsque vous tournez la cl de contact, le moteur de la voiture dmarre, sans que vous ayez vous soucier du dtail des vnements et des technologies mises en uvre.

    VBA permet, par exemple, de crer des interfaces graphiques pour vos programmes, en dposant simplement les objets dont vous avez besoin (cases cocher, zones de texte, boutons de commandes, etc.), sur une feuille. Ces objets ont des comportements spci-fiques que votre programme exploitera, sans que vous ayez besoin de vous soucier de leur mcanisme interne.

    Application hte et modles dobjetsLorsque vous dvelopperez des programmes VBA, vous agirez sur des objets qui varieront en fonction des actions que vous souhaitez que votre programme excute. Vous dfinirez et associerez ces objets de faon crer une application complte. L encore, lanalogie avec les objets de la vie courante est rvlatrice. Les objets que nous utilisons sont gnralement ordonns selon leur fonction. Lorsque vous souhaitez vous laver, vous vous dirigez vers la salle de Bains; il sagit du lieu consacr la toilette. Vous y trouvez un certain nombre dobjets tels que Savon, Gant de toilette, Dentifrice, Brosse dents,etc. Vous utilisez le savon avec le gant de toilette, le dentifrice avec la brosse dents, et vous pouvez faire une toilette complte.

    Si vous souhaitez manger, cest dans la cuisine que vous vous orienterez. Vous y trouverez quelques objets communs ceux de la salle de bains (Lavabo, Robinet, Placard,etc.). Vous ne devriez cependant pas y trouver de brosse dents, ni aucun des objets spcifiques la toilette. Par contre, vous pourrez utiliser le four, ouvrir le frigo et utiliser tous les objets spcifiques de la cuisine.

    Les applications du Pack Office sont comparables aux pices de votre maison. Lorsque vous choisissez de dvelopper un projet VBA, vous choisissez une application hte. Ilsagit de lapplication Office qui contient les objets sur lesquels vous souhaitez agir. Cest dans

    Info

  • Chapitre 1 Notions fondamentales de la programmation oriente objet 17

    cette application que vous dvelopperez vos programmes, et cest uniquement partir de cette application quils pourront tre excuts. Si vous souhaitez travailler sur des textes, vous choisirez dentrer dans Word; pour faire des calculs, vous savez que cest dans Excel que vous trouverez les objets dont vous avez besoin; Access sert au dveloppement et au maniement des bases de donnes et PowerPoint, la cration de prsentations.

    Cependant, limage des pices de votre maison, les applications Office ne sont pas herm-tiques. Vous pouvez parfaitement vous prparer un plateau repas dans la cuisine et choisir de manger au lit. De faon semblable, des projets VBA volus peuvent utiliser des objets de diffrentes applications Office. Un programme dvelopp dans Excel peut utiliser des donnes stockes dans une base de donnes Access ou des objets Word pour imprimer un courrier qui accompagnera une facture, et envoyer un message Outlook de confirmation. Vous devez alors choisir une application hte pour votre projet. Deux critres doivent la dterminer:

    Votre programme sera plus performant et plus simple dvelopper si lapplication hte est celle dans laquelle sexcute lessentiel des instructions du programme.

    La prsence du programme dans lapplication hte doit tre logique, et lutilisateur final doit y avoir un accs facile puisque le programme ne pourra tre excut qu partir de celle-ci.

    Tous les projets dvelopps dans cet ouvrage seront hbergs dans Excel. Pour accder aux objets dune application autre que lapplication hte, vous utilise-rez la technologie Automation. Laccs aux objets dune autre application est trait au Chapitre6.

    Lapplication est donc la pice dans laquelle votre programme sexcutera. Celle-ci est compose dun certain nombre dobjets constituant une bibliothque dobjets dont les rapports sont prcisment dfinis. Les objets dune application et les rapports quils entretiennent sont reprsents sous la forme dun organigramme. Tout en haut de lor-ganigramme se trouve lapplication (la pice dans laquelle sont rangs tous les objets). Viennent ensuite les classes dobjets de premier niveau de lapplication, auxquelles sont lis dautres objets ou classes, et ainsi de suite. On appelle cette structure le modle dobjets ou la hirarchie de classes de lapplication. La Figure1.1 reprsente ce qui pourrait tre un modle dobjets sommaire de lapplication Salle de bains.

    La plupart des lments dExcelpeuvent tre manipuls dans Visual Basic pour Applications en tant quobjets. Un classeur Excel, une feuille de ce classeur, une cellule ou une bote de dialogue Rechercher sont des objets qui peuvent tre manipuls dans un programme Visual Basic.

    Info

    Info

  • 18 Excel et VBA

    Figure1.1Lensemble des objets dune appli-cation est structur selon un modle dobjets qui en dfinit les rapports et la hirarchie.

    Pice(Salle de bain)

    Rangements

    Placard Armoire Etagres

    Conteneurs

    Baignoire Lavabo Bidet

    Produits denettoyage

    Savons Shampooings Dentifrices

    SavonSurgras

    Savon deMarseille

    SavonMonjoli

    Au sommet du modle se trouve la pice lapplication. Tous les objets auxquels vous pouvez accder y sont contenus. Si lon tablit un modle dobjets pour lensemble des pices de la maison, on retrouvera toujours lobjet Pice au sommet du modle. De la mme faon, au sommet des modles dobjets des applications Office, se trouve lobjet Application.

    Viennent ensuite les classes situes immdiatement sous lobjet Pice. Plus on progresse dans le modle dobjets, plus les objets sont prcis et donc spcifiques de la pice ou de lapplication. Par exemple, dans Excel, sous lobjet Application se trouve la collection (ou classe) Workbooks qui englobe tous les objets Workbook, cest--dire tous les classeurs Excel ouverts. Sous lobjet Workbook se trouve la classe Worksheets qui englobe tous les objets Worksheet (toutes les feuilles de calcul) de lobjet Workbook dsign.

    Pour accder laide en ligne des objets Excel, affichez lAide de Microsoft Visual Basic pour Applications partir du menu "?", puis slectionnez la com-mande Rfrence du modle dobjets Excel (Objets Microsoft Excel si vous utilisez une version antrieure). Vous apprendrez accder Visual Basic Editor au prochain chapitre.

    Notez que le fait que des objets appartiennent des branches distinctes du modle dobjets ne signifie pas quils ne peuvent pas interagir. Lobjet Savon de Marseille peut se trou-ver sur ltagre, et vous pouvez utiliser la mthode Dplacer pour le mettre dans lobjet Baignoire, comme dans lobjet Lavabo.

    Un objet peut englober dautres objets. Un objet intgrant dautres objets est qualifi de conteneur. Cest le cas de lobjet Application, mais cest aussi vrai pour beaucoup dautres objets du modle dobjets dExcel. Par exemple, un objet Workbook contient des

    Astuce

  • Chapitre 1 Notions fondamentales de la programmation oriente objet 19

    objets Worksheet (feuilles de calcul), contenant eux-mmes des objets Range (cellules et plages de cellules).

    Figure1.2Le modle dobjets dExcel.

    Accder aux objetsLe modle dobjets dtermine le chemin emprunter pour accder un objet. Pour vous laver les dents, vous devez dabord accder votre brosse dents. Mme si le processus est inconscient, vous identifiez lobjet Brosse dents par son emplacement: il est situ dans la salle de bains, parmi les objets et produits de toilette. De la mme faon, en Visual Basic, vous devez identifier un objet avant de pouvoir agir dessus (appliquer lune de ses mthodes ou modifier la valeur de lune de ses proprits). Lorsque vous souhaitez vous laver les dents, vous pensez et suivez inconsciemment les tapes suivantes:

    aller la Salle de bains; se diriger vers les Produits de toilette; choisir parmi ceux-ci le dentifrice et sen saisir.

  • 20 Excel et VBA

    Pour accder un objet Excel, vous oprerez selon le mme mode, cest--dire en partant de lobjet situ le plus haut dans la hirarchie dobjets et en progressant dans celle-ci jusqu atteindre lobjet voulu.

    Le point est utilis comme sparateur entre les diffrentes collections et objets que lon rencontre avant datteindre lobjet voulu. La rfrence un objet prcis dune collection se fait selon la syntaxe suivante:

    Nom_Collection("Nom_Objet")

    ou

    Le code VBA permettant daccder lobjet Dentifrice serait:

    Piece.ProduitsNettoyants("Dentifrice").Prendre

    La premire partie du code permet daccder lobjet Dentifrice; lexpression identifiant un objet est appele rfrentiel dobjet. La mthode Prendre est ensuite applique cet objet afin de sen saisir.

    Le code Visual Basic permettant dappeler la feuille de classeur Excel nomme "MaFeuille", et situe dans le classeur "MonClasseur.xlsm" ( condition que celui-ci soit ouvert), serait:

    Application.Workbooks("MonClasseur.xlsm").Sheets("MaFeuille").Activate

    On accde lobjet Workbook MonClasseur de la collection Workbooks (tous les classeurs ouverts), puis la feuille nomme "MaFeuille" de la collection Sheets (toutes les feuilles de lobjet MonClasseur). Une fois le chemin daccs lobjet indiqu, on lui applique la mthode Activate pour lactiver.

    Outre leur nom, les objets dune collection sont identifis au sein de la col-lection par une valeur dindice reprsentant leur position dans la collection. Cette valeur peut tre utilise pour renvoyer un objet dune collection, selon la syntaxe suivante:

    Nom_Collection(IndexObjet)

    o IndexObjet reprsente la position de lobjet dans la collection. Linstruction suivante:

    Workbooks(2).Activate

    active le classeur Excel apparaissant en deuxime position dans le menu Fentre.

    Poursuivons lanalogie. Si vous vous trouvez dj dans la salle de bains au moment o vous dcidez de vous laver les dents, vous navez pas besoin dy accder. Si vous avez dj le nez parmi les produits de toilette, il est inutile dy faire rfrence.

    Info

  • Chapitre 1 Notions fondamentales de la programmation oriente objet 21

    De faon semblable, dans le code VBA, les objets de niveau hirarchique suprieur celui de lobjet que vous souhaitez atteindre peuvent parfois tre ignors. Cest toujours le cas pour lobjet Application. En effet, votre projet VBA tant stock et donc excut partir dune application hte, il est inutile de rappeler que vous tes dans cette application.

    Lexpression:

    Workbooks("MonClasseur.xlsm").Sheets("MaFeuille").Activate

    suffit donc activer la feuille intitule "MaFeuille" du classeur nomm "MonClasseur.xlsm".

    Selon le mme principe, en cas dabsence de rfrentiel dobjets, la collection Sheets concerne le classeur actif. Si MonClasseur est le classeur actif, on peut donc se dispenser de toute rfrence cet objet. On obtient alors linstruction suivante:

    Sheets("MaFeuille").Activate

    Une petite finesse terminologique: les objets proprement parler napparais-sent jamais dans le code. Pour faire rfrence un objet, on utilise une proprit qui appelle ou renvoie lobjet voulu. Dans les exemples prcdents, Workbooks est une proprit de lobjet Application, qui renvoie tous les classeurs ouverts (la classe Workbooks). Sheets est une proprit de lobjet Workbook, qui renvoie toutes les feuilles de classeur (la classe Sheets) de cet objet.

    Les propritsRevenons lanalogie avec lautomobile et prenons la classe Voitures. Toutes les propri-ts propres aux objets Voitures y sont dfinies. Les objets ou classes situs immdiatement sous Voitures dans le modle dobjets appartiennent la collection dobjets Voitures. En tant que tels, ils hritent de toutes les proprits dfinies dans la classe Voitures.

    Les proprits peuvent tre un attribut de lobjet ou un aspect de son comportement. Par exemple, les proprits dune voiture sont, notamment, sa marque, son modle, ltat des pneus, lactivation ou non du moteur,etc. Les proprits dun document Word sont son modle, son nom, sa taille,etc.

    Les proprits prennent des valeurs spcifiques qui distinguent les diffrents objets de la collection. La proprit Couleur dun objet Voiture peut prendre la valeur Rouge, tandis que la mme proprit dun objet de la collection est attache la valeur Bleu.

    Lorsque vous dvelopperez des programmes VBA, vous exploiterez les proprits dun objet de deux faons:

    Info

  • 22 Excel et VBA

    En modifiant les valeurs attaches aux proprits de lobjet. Pour modifier un objet, il suffit de changer les valeurs de ses proprits. Les proprits dont les valeurs peuvent tre modifies sont dites en lecture-criture.

    Certaines proprits ne peuvent tre modifies et sont dites en lecture seule. Vous pouvez, par exemple, modifier la proprit Etat_du_moteur (allum ou teint) dun objet Voiture, mais non sa proprit Marque. Vous pouvez modifier le nombre de feuilles qui composent un classeur, mais non sa date de cration.

    En interrogeant les valeurs attaches aux proprits dun objet. Les valeurs des proprits peuvent tre lues afin de connatre les spcificits de lobjet et dorienter le comportement du programme. Par exemple, si la proprit Marque dun objet Voiture est affecte la valeur BMW et sa proprit Contenu_Rservoir, affecte une valeur gale 40 (litres), vous ferez un plein 40euros. Si les proprits Marque et Modle sont respectivement affectes aux valeurs Citron et 2CV et la proprit Contenu_Rservoir, une valeur gale 20, vous ne ferez quun plein 20euros.

    De la mme faon, un programme VBA peut excuter des instructions tant que le nombre de classeurs ouverts est diffrent de zro (Workbooks.Count 0).

    Types de valeurs des proprits

    Les valeurs affectes aux proprits dun objet peuvent tre de quatre types:

    une chane de caractres; une valeur numrique; une valeur boolenne; une constante.

    Chanes de caractres

    Une chane de caractres est une suite de caractres contigus lettres, chiffres, espaces ou signes de ponctuation. Ces donnes sont aussi qualifies de type Chane ou String. Une chane de caractres peut contenir jusqu environ deux milliards de caractres. En Visual Basic, les chanes de caractres sont places entre guillemets.

    Les exemples suivants sont des chanes de caractres:

    "Paul"; "1254"; "Je suis une chane de caractres compose de 59caractres".

  • Chapitre 1 Notions fondamentales de la programmation oriente objet 23

    Les chanes de caractres sont interprtes en tant que caractres, et non en tant que valeur numrique. Autrement dit, la chane "1254" est interprte comme la combinaison des caractres 1, 2, 5 et 4.

    Par exemple, la proprit Modle dun objet Voiture est toujours une chane de caractres. Celle-ci ne peut tre compose que de chiffres par exemple "2000", sans que vous puissiez pour autant diviser cette valeur par un nombre quelconque.

    Valeurs numriques

    Une valeur numrique est une suite de chiffres. Elle peut tre un nombre entier ou dcimal, positif ou ngatif.

    Les exemples suivants sont des valeurs numriques:

    0; 1548972; 1245,4542; 100E4.

    Le caractre E dans une variable numrique signifie "Exposant". Ainsi, la valeur numrique 100E4 est gale 100104.

    Les valeurs numriques sont interprtes comme des chiffres. Il peut sagir de valeurs comme dexpressions conjuguant valeurs numriques et oprateurs arithmtiques (* / +). Par exemple, les proprits Contenu_Rservoir et Consommation dun objet Voiture sont des valeurs numriques. La combinaison de ces proprits permet de dterminer combien de kilomtres peuvent tre parcourus avant la panne sche, selon lexpression arithmtique:

    Kilomtres_Avant_Panne_Sche = Contenu_Rservoir / Consommation

    Notez quune expression arithmtique peut tre compose de nombres (100 25), de variables auxquelles sont affectes des valeurs numriques (nombre1 nombre2), ou dune combinaison des deux (nombre1 25). Les variables sont tudies en dtail au Chapitre6.

    Les valeurs numriques pouvant tre affectes une proprit varient avec les proprits et les objets. Par exemple, dans Excel, la taille dune police doit tre comprise entre 1 et 409. Par consquent, la valeur que peut prendre la proprit Size (taille) dun objet Font (police)

    Info

    Info

  • 24 Excel et VBA

    dExcel doit aussi tre comprise entre ces deux valeurs. Dans le cas de lobjet Voiture, la proprit Contenu_Rservoir doit toujours tre suprieure 0, la valeur maximale dpen-dant dautres spcificits de lobjet, telles que ses proprits Marque et Modle.

    Valeurs boolennes

    Certaines proprits ne peuvent prendre que deux tats: elles sont vrifies ou elles ne le sont pas. Ces proprits sont attaches une valeur de type Boolean, ou valeur boolenne. Une valeur boolenne peut tre True ou False.

    La proprit Moteur_Allum dun objet Voiture est attache une valeur boolenne. La valeur True lui est affecte si le moteur de lobjet Voiture est allum. Dans le cas contraire, la proprit Moteur_Allum sera gale False.

    Comme vous le verrez au Chapitre15, un classeur Excel gre une vingtaine de proprits qui reprsentent ses options et son tat un moment donn. Nombre de ces proprits acceptent une valeur de type Boolean. Cest par exemple le cas de la proprit Saved qui renvoie True si aucune modification na t apporte au document depuis son dernier enre-gistrement, et False dans le cas contraire.

    En Visual Basic, la valeur True peut tre remplace par 1, et la valeur False, par 0. Cette pratique est cependant dconseille, puisquelle rend la lecture du code moins aise.

    Constantes

    Les constantes sont des valeurs intgres de VBA qui conservent toujours la mme valeur. Lorsquune proprit accepte un nombre dtermin dtats, les valeurs reprsentant ces tats sont souvent reprsentes sous forme de constantes. Celles-ci se prsentent sous la forme dune suite de lettres. Les constantes sont reprsentes sous forme de chanes de caractres, mais correspondent en ralit des valeurs numriques.

    Les constantes intgres dsignent ltat de proprits pour un objet spcifique. Chacune des applications Office possde ses propres constantes (puisquelle possde ses propres objets). Cependant, certaines proprits tant communes toutes les applications de la suite Office, les constantes dsignant leur tat se retrouvent aussi dans toutes les applica-tions Office. Les constantes intgres de VBA commencent par deux lettres en minuscules indiquant lapplication laquelle appartient la constante. Le tableau ci-dessous reprend les prfixes des constantes VBA les plus courantes pour Microsoft Office :

    Info

  • Chapitre 1 Notions fondamentales de la programmation oriente objet 25

    vbwdxlppacolfpbindfm

    Visual BasicWordExcelPowerPointAccessOutlookFrontPageClasseur OfficeFeuilles Visual Basic

    Lorsquune proprit accepte des constantes pour valeurs, le nombre de ces constantes est dtermin et correspond aux diffrents tats que peut prendre la proprit. Par exemple, les clignotants dune voiture peuvent accepter quatre tats diffrents: dsactivs, activs droite, activs gauche, position Warning (les clignotants droite et gauche activs). La proprit Etat dun objet Clignotant pourrait donc accepter lune des quatre constantes Clignotant, chacune correspondant lun de ces tats possibles:

    ClignotantAucunClignotantDroiteClignotantGaucheClignotantWarning

    Excel intgre un nombre important de constantes. Lorsquune commande Excel exige de lutilisateur la slection dune option parmi plusieurs possibles, ces options sont gnrale-ment reprsentes sous forme de constantes en langage VBA. Par exemple, lorsque vous insrez une cellule dans une feuille de classeur (Insertion > Cellules), vous devez choisir entre les options Dcaler les cellules vers la droite ou Dcaler les cellules vers le bas. Lins-truction VBA correspondante sera:

    Selection.Insert(Shift)

    o largument Shift est une des constantes XlInsertShiftDirection spcifiant la mthode Insert la faon dont la cellule sera insre. Il peut sagir de la constante xlShiftToRight (les cellules seront dcales vers la droite) ou de la constante xlShiftDown (les cellules seront dcales vers le bas).

    Les constantes sont la reprsentation textuelle de valeurs numriques. Chacune des constantes Clignotant correspond une valeur numrique. La proprit ClignotantWarning pourrait, par exemple, correspondre la valeur num-rique 3. Vous pouvez indiffremment utiliser les constantes VBA ou les valeurs numriques auxquelles elles correspondent. Il est cependant conseill dutiliser les constantes, afin de faciliter la lecture du code. Si vous comprenez langlais, les constantes vous sembleront en effet plus parlantes que de simples chiffres.

    Info

  • 26 Excel et VBA

    Accder aux proprits

    Pour modifier une proprit dun objet, on utilise la syntaxe suivante:

    Expression.Proprit = valeur

    o Expression est une expression renvoyant un objet un rfrentiel dobjet, tel que cela a t dcrit dans la section prcdente. Proprit est le nom de la proprit que lon souhaite modifier (toujours spare de lobjet auquel elle se rfre par un point) et valeur, la valeur que vous souhaitez lui affecter.

    Le type de la valeur (chane, valeur numrique, constante ou valeur boolenne) doit tre adapt la proprit. Si tel nest pas le cas, le programme gnre une erreur. Par exemple, la proprit Contenu_Rservoir dun objet Voiture naccepte quune valeur numrique; vous ne pouvez pas lui affecter une chane de caractres.

    Le Tableau1.1 illustre diffrentes possibilits de modifier lobjet Voiture "MaVoiture":

    Tableau1.1: Pour modifier un objet, il suffit den changer les proprits

    Syntaxe Type de la valeur affecteConsquence pour lobjet Voiture

    Voitures("MaVoiture").Immatriculation = "4444AB29"

    Chane de caractres Une nouvelle immatriculation

    Voitures("MaVoiture").Moteur_Allume = True

    Valeur boolenne Le moteur est allum

    Voitures("MaVoiture").Contenu_Rservoir = 50

    Valeur numrique Le rservoir contient 50 litres

    Voitures("MaVoiture").Cligotant.Etat = ClignotantWarning

    Constante Lobjet clignotant est en position Warning

    Pour lire la valeur dune proprit dun objet, on stocke gnralement cette valeur dans une variable, selon la syntaxe suivante:

    variable = Expression.Proprit

    Linstruction suivante passe la fentre active en mode daffichage Aperu des sauts de page, en dfinissant sa proprit View xlPageBreakPreview.

    ActiveWindow.View = xlPageBreakPreview

    Linstruction suivante stocke dans la variable TypeAffichage la valeur reprsentant le type daffichage en cours:

    TypeAffichage = ActiveWindow.View

  • Chapitre 1 Notions fondamentales de la programmation oriente objet 27

    Les mthodesLes mthodes reprsentent les actions quun objet peut excuter. Tandis que les proprits dfinissent un tat, les mthodes dterminent un comportement. Les mthodes pouvant tre appliques un objet dpendent troitement de lobjet. Les objets de la classe Voitures supportent des mthodes telles que Tourner, Freiner, Acclrer,etc.

    Cependant, certaines mthodes peuvent tre communes des objets diffrents, mme si elles ont des consquences diffrentes. Par exemple, la mthode Ouvrir peut sappliquer aux objets Porte, Coffre ou Cendrier dune voiture, comme un objet Porte ou Robinet dune maison. Certaines mthodes se retrouvent dans toutes les applications Office. Cest le cas pour toutes les mthodes correspondant des commandes de menu communes aux applications. Par exemple, les mthodes Open (ouvrir) et Close (fermer) peuvent sappli-quer un classeur Excel comme un document Word, un formulaire Access ou encore une prsentation PowerPoint.

    Une mthode peut avoir des consquences sur ltat de certaines proprits de lob-jet auquel elle sapplique, voire sur dautres objets. Par exemple, si vous appliquez la mthode Acclrer un objet Voiture, la valeur affecte la proprit Vitesse de cet objet augmentera.

    Si vous modifiez le contenu dune cellule dun classeur Excel, la taille de la cellule pourra tre modifie en consquence. Si dautres cellules sont lies par des formules la cellule dont vous modifiez la valeur, leurs valeurs seront mises jour en consquence. Chaque fois que vous crez un nouveau classeur laide de la mthode Add, la valeur de la proprit Count de la collection Workbooks (le nombre de classeurs ouverts) est incrmente de 1. Chaque fois que vous fermez le classeur laide de la mthode Close, la valeur de la proprit Count de la collection Workbooks est dcrmente de 1.

    En outre, pour excuter correctement une mthode, il est parfois ncessaire de modifier au pralable les proprits de lobjet auquel elle sapplique. Par exemple, si vous souhai-tez appliquer la mthode Tourner un objet Voiture, vous devez auparavant modifier la proprit Etat_Clignotant de lobjet Clignotant de cette voiture.

    La syntaxe permettant dappliquer une mthode un objet est:

    Expression.Mthode

    o Expression est une expression renvoyant un objet un rfrentiel dobjet, tel que cela a t dcrit dans la section prcdente. Mthode est le nom de la mthode que lon souhaite excuter (toujours spare de lobjet auquel elle se rfre par un point).

  • 28 Excel et VBA

    Une mthode peut aussi sappliquer une collection dobjets. La syntaxe est alors:

    Collection.Mthode

    o Collection reprsente la collection dobjets sur laquelle on souhaite agir, et Mthode, une mthode commune aux objets de la collection.

    Vous pouvez, par exemple, arrter toutes les voitures de la collection Voitures, en leur appliquant la mthode Arrter:

    Voitures.Arrter

    Pour fermer tous les classeurs ouverts dans une session Excel, vous utiliserez linstruction suivante:

    Workbooks.Close

    Cette syntaxe est aussi utilise pour crer une occurrence dun objet de la collection Collec-tion. La mthode utilise est alors gnralement la mthode Add lquivalent Visual Basic de longlet Fichier. Par exemple, pour crer un nouveau classeur Excel, vous ferez appel la collection Workbooks (Workbooks.Add).

    Vous pouvez ensuite dfinir les proprits de lobjet ainsi cr, comme nous lavons vu dans la section "Les proprits" de ce chapitre.

    Les vnements

    Un vnement est une action reconnue par un objet. La reconnaissance dun vnement par un objet permet de dclencher lexcution dun programme lorsque cet vnement survient. On parle alors de procdure vnementielle. Un clic de souris ou la frappe dune touche sont des exemples dvnements pouvant tre interprts par un programme VBA.

    Une procdure vnementielle est une procdure attache un vnement utili-sateur tel quun clic de souris, la frappe dune touche, lactivation dune feuille de calcul,etc. La procdure sexcute lorsque lvnement auquel elle est attache est reconnu par lapplication.

    Les objets de la collection Voitures peuvent, par exemple, reconnatre lvnement Choc. Un objet Voiture peut tre conu pour que la dtection de lvnement Choc entrane louverture de lobjet Airbag, autrement dit lapplication de la mthode Ouvrir cet objet.

    Les vnements sutilisent essentiellement avec les contrles de formulaires que vous dve-lopperez et avec les objets. Vous apprendrez exploiter les vnements utilisateur affectant

    Dfinition

  • Chapitre 1 Notions fondamentales de la programmation oriente objet 29

    un formulaire aux Chapitres13 et 14. Les feuilles de calcul, les graphiques, les classeurs et lapplication Excel grent aussi des vnements. Vous apprendrez crer des procdures vnementielles pour ces objets au Chapitre15.

    Les fonctions

    Les fonctions servent renvoyer une information, selon les lments qui leur sont fournis. Le type de linformation renvoye varie dune fonction lautre. Il peut sagir dune chane de caractres, dune valeur numrique, boolenne, de type Date,etc. Visual Basic intgre un certain nombre de fonctions que vous pouvez exploiter directement. Par exemple, la fonction Asc renvoie le code ASCII du caractre slectionn, tandis que la fonction Int renvoie la partie entire dun nombre. Certaines fonctions sont particulirement utiles. Cest le cas de la fonction MsgBox qui permet dafficher une bote de dialogue contenant des boutons tels que Oui, Non, Annuler,etc., et qui renvoie une valeur refltant le choix de lutilisateur.

    Vous pouvez aussi crer vos propres fonctions qui traiteront les valeurs qui leur seront passes pour renvoyer une valeur ensuite utilise par le programme. Dans le cas dun objet Voiture, vous pouvez crer une fonction Cot_Plein qui exploitera les proprits Contenu_Rservoir et Contenance_Rservoir de lobjet, ainsi quune variable reprsentant le prix de lessence, pour renvoyer une valeur correspondant au cot dun plein. Lorsque vous crez des fonctions VBA pour Excel, celles-ci sont accessibles pour lutilisateur final comme nimporte quelle fonction Excel intgre.

    Les fonctions ont gnralement besoin de paramtres ou arguments. Si les arguments obli-gatoires dune fonction ne lui sont pas passs au moment de lappel, une erreur est gnre. Dans le cas prcdent, trois paramtres de type numrique doivent tre passs la fonction Cot_Plein pour quelle sexcute correctement: le contenu du rservoir, sa contenance et le prix de lessence.

    Le modle dobjets dExcelExcel est lapplication Office qui supporte VBA depuis le plus longtemps et son modle dobjets est le plus mr. Excel offre de multiples possibilits de personnalisation au programmeur.

    Les objets les plus importants sont prsents dans le Tableau1.2. Le Listing1.1 prsente des exemples dinstruction VBA utilisant ces objets. Lessentiel de ces exemples a t gnr laide de lEnregistreur de macro, sans quil soit ncessaire dcrire du code.

  • 30 Excel et VBA

    Tableau1.2: Les objets cls du modle dobjets dExcel

    Collection (objet) Description

    Objets de niveau Application

    Addins (Addin) Lensemble des macros complmentaires, charges ou non. Acces-sibles dans la bote de dialogue Macros complmentaires (Outils > Macros complmentaires).

    Dialogs (Dialog) Les botes de dialogue prdfinies dExcel.

    LanguageSettings Renvoie des informations sur les paramtres de langue utiliss dans lapplication.

    Names (Name) Lensemble des objets Name de niveau Application. Un objet Name reprsente un nom dfini pour une plage de cellules nomme.

    Windows (Window) Lensemble des fentres disponibles (accessibles via le menu Fentre).

    Workbooks (Workbook) Lensemble des classeurs ouverts.

    Worksheetfunction On utilise lobjet Worksheetfunction pour accder aux fonctions de feuilles de calcul partir de VBA. Faites suivre la proprit Worksheetfunction dun point, puis du nom de la fonction et de ses arguments entre parenthses.

    Objets de lobjet Workbook

    Charts (Chart) Lensemble des feuilles graphiques de lobjet Workbook.

    Names (Names) Lensemble des objets Name pour le classeur spcifi.

    Styles (Style) Lensemble des styles disponibles dans un classeur. Il peut sagir dun style dfini par lutilisateur ou dun style prdfini, tel que les styles Millier, Montaire ou Pourcentage (Format > Styles).

    Windows (Window) Lensemble des fentres pour le classeur spcifi.

    Worksheets (Worksheet) Lensemble des feuilles de calcul de lobjet Workbook dsign.

    Objets de lobjet Worksheet

    Names (Name) Lensemble des objets Name pour la feuille de calcul spcifie.

    Range Une cellule, une ligne, une colonne ou une plage de cellules, conti-gus ou non, une plage de cellules3D.

    Comments (Comment) Lensemble des commentaires pour lobjet Worksheet dsign.

    HPageBreaks (HPageBreak) Les sauts de page horizontaux de la feuille de calcul.

    VPageBreaks (VPageBreaks) Les sauts de page verticaux de la feuille de calcul.

    Hyperlinks (Hyperlink) Lensemble des liens hypertexte de la feuille de calcul.

    Scenarios (Scenario) Les scnarios de la feuille de calcul.

  • Chapitre 1 Notions fondamentales de la programmation oriente objet 31

    Collection (objet) Description

    OLEObjects (OLEObject) Les objets incorpors ou lis et les contrles ActiveX de la feuille.

    Outline Le plan de la feuille de calcul.

    PageSetup Les options de mise en page de la feuille.

    QueryTables (QueryTable) Les tables de requte de la feuille.

    PivotTables (PivotTable) Les tableaux et les graphiques croiss dynamiques.

    ChartObjects (ChartObject) Les graphiques incorpors de la feuille de calcul spcifie.

    Objets de lobjet Range

    Areas Les plages de cellules contigus lintrieur dune slection.

    Borders (Border) Les bordures dun objet Range. La collection Borders regroupe tou-jours quatre objets Border, reprsentant les quatre bordures de lobjet Range dsign.

    Font Les attributs de police de caractres de lobjet Range spcifi.

    Interior Lintrieur de lobjet Range.

    Characters Lensemble des caractres contenus par lobjet Range.

    Name Le premier nom dans la liste des noms de la plage de cellules prcise.

    Style Le style de lobjet Range dsign.

    FormatConditions (FormatCondition)

    Lensemble des mises en forme conditionnelles de lobjet Range.

    Hyperlinks (Hyperlink) Lensemble des liens hypertexte de lobjet Range.

    Validation La validation des donnes pour la plage de cellules prcise.

    Comment Le commentaire de cellule pour lobjet Range dsign.

    Listing1.1: Exemples dutilisation des objets Excel

    activation du classeur Classeur1Windows("Classeur1").Activatesauvegarde du classeur actifActiveWorkbook.Savenouveau classeurWorkbooks.Addnouveau classeur fond sur le modle MonModele.xlt

  • 32 Excel et VBA

    affectation du nom MaPlage la palge de cellule A1:C20 de la feuille MaFeuilleActiveWorkbook.Names.Add Name:=hop, RefersToR1C1:==Feuil1!R5C2:R12C3Names.Add Name:=MaPlage, RefersTo:==MaFeuille!$a$1:$c$20ajout dun graphiqueCharts.Addaffectation du type Histogramme empil au graphique actifActiveChart.ChartType = xlColumnStackeddfinition de la source de donnes du graphique actifActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("C6:E10"), PlotBy :=xlColumnsdfinition de lemplacement du graphique actifActiveChart.Location Where:=xlLocationAsObject, Name:=Feuil1dfinition des titres du graphique actifWith ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = FalseEnd Withslection de la feuille Feuil1 du classeur actifSheets("Feuil1").Selectaffectation du nom Graphique la feuille Feuil1Sheets("Feuil1").Name = "Graphique"suppression des feuilles slectionnesActiveWindow.SelectedSheets.Deleteajout dun commentaire la cellule D2 de la feuille activeRange("D2").AddCommentle commentaire nest pas rendu visibleRange("D2").Comment.Visible = Falsedfinition du texte du commentaire de la cellule D2Range("D2").Comment.Text Text:="Excellent !"ajout du contrle ActiveX Calendar la feuille activeActiveSheet.OLEObjects.Add(ClassType:=MSCAL.Calendar, Link:=False, _ DisplayAsIcon:=False).Selectaffectation du format montaire US la plage slectionneSelection.NumberFormat = "#,##0.00 $"dfinition des attributs de police de la plage slectionneWith Selection.Font .Name = Arial

  • Chapitre 1 Notions fondamentales de la programmation oriente objet 33

    .FontStyle = Gras .Size = 8 .ColorIndex = 46End Withcoloriage de lintrieur de la plage slectionneWith Selection.Interior .ColorIndex = 6 .Pattern = xlSolidEnd With

  • 2Premires macros

    Au sommaire de ce chapitre

    Crer une macro GrasItalique Diffrentes mthodes denregistrement crire la macro Crer une macro Titre_WordArt Stocker des macros

  • 36 Excel et VBA

    Lenregistrement de macros constitue certainement le meilleur apprentissage de Visual Basic pour Applications. Les commandes de lapplication hte accessibles par les menus, les barres doutils ou les raccourci