Programmation Excel Avec VBA

Transcription

M. BidaultDu simple enregistrement de macros à la conception d’interfaces utilisateuret au débogage de vos programmes, vous trouverez ici toutes les informationsnécessaires au développement d’applications VBA pour Excel.DÉVELOPPEZ UNE APPLICATION EXCEL PROFESSIONNELLEVous finirez l’ouvrage par la création d’un programme complet de générationde contrats et de feuilles de paie via une série d’interfaces utilisateur quivous permettront de récapituler et mettre en œuvre toutes les connaissancesacquises lors de votre lecture.À qui s’adresse cet ouvrage ? Aux utilisateurs d’Excel désireux d’améliorer leur productivité Aux responsables qui souhaitent créer des solutions sûres et efficacespour leurs équipes Aux personnes qui souhaitent s’initier à la programmation via le tableurde MicrosoftDes compléments web à téléchargerTous les exemples de programmes du livre sont en téléchargement surnotre site Internet uvrir la programmation Excel. Notionsfondamentales de la programmation orientéeobjet (POO) Premières macros Déplacementet sélection dans une macro Excel DécouvrirVisual Basic Editor Programmer en Visual Basic.Développer dans Visual Basic Editor Variables etconstantes Contrôler les programmes VBA Fonctions Excel et VBA Manipuler des chaînesde caractères Déboguer et gérer les erreurs Intégrer des applications VBA dans l’interfaced’Excel Développer des interfaces utilisateur.Créer des interfaces utilisateur Exploiter les propriétés des contrôles Maîtriser le comportementdes contrôles Notions avancées de la programmation Excel. Programmer des événementsExcel Protéger et authentifier des projets VBA Exemple complet d’application Excel32 Conception de couverture : Studio Eyrolles Éditions EyrollesG67401 Excel et VBA.indd 1ProgrammationProgrammation Excel avec VBAVous y apprendrez les principes de la programmation orientée objet, le langage VBA et découvrirez en détail Visual Basic Editor, l’environnement deprogrammation Excel.Éditeur et développeur indépendant, MikaëlBidault développe des compléments Word etExcel pour des maisons d’édition et des sitesInternet. Il est le créateur de l’articho, uncomplément VBA pour Word dédié à l’édition printet numérique (www.articho.eu).Excel avec VBACompatible avec toutesles versions d'ExcelCode éditeur : G67401ISBN : 978-2-212-67401-9MAÎTRISEZ TOUS LES ASPECTS DE LA PROGRAMMATION EXCELQu’il s’agisse de faire face à un besoin immédiat ou de créer des programmesdurables, cet ouvrage vous aidera à tirer pleinement profit d’Excel grâce à laprogrammation VBA.Mikaël Bidault11/05/2017 16:08

Mikaël BidaultMAÎTRISEZ TOUS LES ASPECTS DE LA PROGRAMMATION EXCELQu’il s’agisse de faire face à un besoin immédiat ou de créer des programmesdurables, cet ouvrage vous aidera à tirer pleinement profit d’Excel grâce à laprogrammation VBA.Vous y apprendrez les principes de la programmation orientée objet, le langage VBA et découvrirez en détail Visual Basic Editor, l’environnement deprogrammation Excel.Du simple enregistrement de macros à la conception d’interfaces utilisateuret au débogage de vos programmes, vous trouverez ici toutes les informationsnécessaires au développement d’applications VBA pour Excel.DÉVELOPPEZ UNE APPLICATION EXCEL PROFESSIONNELLEVous finirez l’ouvrage par la création d’un programme complet de générationde contrats et de feuilles de paie via une série d’interfaces utilisateur quivous permettront de récapituler et mettre en œuvre toutes les connaissancesacquises lors de votre lecture.À qui s’adresse cet ouvrage ? Aux utilisateurs d’Excel désireux d’améliorer leur productivité Aux responsables qui souhaitent créer des solutions sûres et efficacespour leurs équipes Aux personnes qui souhaitent s’initier à la programmation via le tableurde MicrosoftDes compléments web à téléchargerTous les exemples de programmes du livre sont en téléchargement surnotre site Internet www.editions-eyrolles.com/dl/0067401.G67401 Excel et VBA.indd 1Éditeur et développeur indépendant, MikaëlBidault développe des compléments Word etExcel pour des maisons d’édition et des sitesInternet. Il est le créateur de l’articho, uncomplément VBA pour Word dédié à l’édition printet numérique (www.articho.eu).SommaireDécouvrir la programmation Excel. Notionsfondamentales de la programmation orientéeobjet (POO) Premières macros Déplacementet sélection dans une macro Excel DécouvrirVisual Basic Editor Programmer en Visual Basic.Développer dans Visual Basic Editor Variables etconstantes Contrôler les programmes VBA Fonctions Excel et VBA Manipuler des chaînesde caractères Déboguer et gérer les erreurs Intégrer des applications VBA dans l’interfaced’Excel Développer des interfaces utilisateur.Créer des interfaces utilisateur Exploiter les propriétés des contrôles Maîtriser le comportementdes contrôles Notions avancées de la programmation Excel. Programmer des événementsExcel Protéger et authentifier des projets VBA Exemple complet d’application ExcelProgrammationExcel avec VBACompatible avec toutesles versions d'Excel11/05/2017 16:08

ProgrammationExcel avec VBA

DANS LA MÊME COLLECTIONK. Novak. – Débuter avec LINUX.N 13793, 2017, 522 pages.P. Martin, J. Pauli, C. Pierre De Geyer. – PHP 7 avancé.N 14357, 2016, 732 pages.L. Bloch, C. Wolfhugel, A. Kokos, G. Billois, A. Soullié, T. Debize. –Sécurité informatique.N 11849, 5e édition, 2016, 648 pages.R. Goetter. – CSS 3 Flexbox.N 14363, 2016, 152 pages.W. McKinney. – Analyse de données en Python.N 14109, 2015, 488 pages.E. Biernat, M. Lutz. – Data science : fondamentaux et études de cas.N 14243, 2015, 312 pages.B. Philibert. – Bootstrap 3 : le framework 100 % web design.N 14132, 2015, 318 pages.C. Camin. – Développer avec Symfony2.N 14131, 2015, 474 pages.S. Pittion, B. Siebman. – Applications mobiles avec Cordova et PhoneGap.N 14052, 2015, 184 pages.H. Giraudel, R. Goetter. – CSS 3 : pratique du design web.N 14023, 2015, 372 pages.C. Delannoy. – Le guide complet du langage C.N 14012, 2014, 844 pages.K. Ayari. – Scripting avancé avec Windows PowerShell.N 13788, 2013, 358 pages.W. Bories, O. Mirial, S. Papp. – Déploiement et migration Windows 8.N 13645, 2013, 480 pages.W. Bories, A. Laachir, D. Thiblemont, P. Lafeil, F.-X. Vitrant. – Virtualisation du poste de travailWindows 7 et 8 avec Windows Server 2012.N 13644, 2013, 218 pages.J.-M. Defrance. – jQuery-Ajax avec PHP.N 13720, 4e édition, 2013, 488 pages.SUR LE MÊME THÈMED.-J. David. – VBA pour Excel 2010, 2013 et 2016.N 14457, 2016, 324 pages.N. Barbary. – Excel expert.N 13692, 2e édition, 2014, 444 pages.J.-M. Lagoda, F. Rosard. – Réaliser des graphiques avec Excel.N 56425, 2016, 128 pages.Retrouvez nos bundles (livres papier e-book) et livres numériques surhttp://izibook.eyrolles.com

Mikaël BidaultProgrammationExcel avec VBA

ÉDITIONS EYROLLES61, bd Saint-Germain75240 Paris Cedex 05www.editions-eyrolles.comEn application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement leprésent ouvrage, sur quelque support que ce soit, sans l’autorisation de l’Éditeur ou du Centre Françaisd’exploitation du droit de copie, 20, rue des Grands Augustins, 75006 Paris. Groupe Eyrolles, 2017, ISBN : 978-2-212-67401-9

Table des matièresIntroduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1Compléments VBA et compléments Office . . . . . . . . . . . . . . . . . . . . . . . . . . . .2VBA, pour quoi faire ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Des programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Une application hôte et des projets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Un langage de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Un environnement de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Conventions typographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244578Codes sources des exemples du livre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9Première partieDécouvrir la programmation Excel . . . . . . . . . . . . . . . . . . . . . . .11chapitre 1Notions fondamentales de la programmation orientée objet (POO)13Comprendre le concept d’objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Objets et collections d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Application hôte et modèles d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Accéder aux objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Les propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Les méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Les événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Les fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1314151820252626Le modèle d’objets d’Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

VIProgrammation Excel avec VBAchapitre 2Premières macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31Créer une macro GrasItalique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Afficher l’onglet Développeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Démarrer l’enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Enregistrer les commandes de la macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Exécuter la macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Structure de la macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Améliorer la macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32323335353641Une autre méthode d’enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Structure de la macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .434343Écrire la macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Exécution de la macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4445Choisir l’accessibilité des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Accessibilité globale ou limitée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Classeurs et modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Le classeur de macros personnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Les macros complémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Définir le classeur de stockage lors de l’enregistrement d’une macro . . . . . . . .Accéder aux macros d’un classeur spécifique . . . . . . . . . . . . . . . . . . . . . . . . . .46464747485052chapitre 3Déplacement et sélection dans une macro Excel . . . . . . . . . . . . . . . . .55Méthodes de sélection dans une feuille Excel . . . . . . . . . . . . . . . . . . . . . . . . . .Clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Souris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Notion de cellule active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Références relatives et références absolues . . . . . . . . . . . . . . . . . . . . . . . . . . . .5656575758Coder les déplacements effectués lors de l’enregistrement d’une macro . . .Référence absolue aux cellules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Référence relative aux cellules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Référence aux cellules en fonction de leur contenu . . . . . . . . . . . . . . . . . . . . . .Référence aux plages de cellules nommées . . . . . . . . . . . . . . . . . . . . . . . . . . . .5960676971

Table des matièresVIIchapitre 4Découvrir Visual Basic Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73Accéder à Visual Basic Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73Les outils et les fenêtres de Visual Basic Editor . . . . . . . . . . . . . . . . . . . . . . . .L’Explorateur de projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .L’Explorateur d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .La fenêtre UserForm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .La fenêtre Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .La fenêtre Propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Les barres d’outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7677808689101105Paramétrer Visual Basic Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108Deuxième partieProgrammer en Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111chapitre 5Développer dans Visual Basic Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113Structure des programmes Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Les modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Les procédures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Les instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113113114116Les différents types de procédures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Procédures Sub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Procédures Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Procédures Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118118122124Des projets bien structurés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Ajouter un module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Supprimer un module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129129130Créer une procédure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Écrire l’instruction de déclaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .La boîte de dialogue Ajouter une procédure . . . . . . . . . . . . . . . . . . . . . . . . . . .La notion de portée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Écriture et mise en forme du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Déplacer une procédure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132132133134135140

VIIIProgrammation Excel avec VBAAppel et sortie d’une procédure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Appel d’une procédure Sub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Appels de procédures Function et Property . . . . . . . . . . . . . . . . . . . . . . . . . . . .Passage d’arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Sortie d’une procédure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Sortie d’un programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140140142142144145Exécuter du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146Aide à l’écriture de code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Vérification automatique de la syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Complément automatique des instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Info express automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146146147148chapitre 6Variables et constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149Déclarer une variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Déclaration implicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Déclaration explicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149149150Types de données des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Valeurs numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Valeurs booléennes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Type Variant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Variables de matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Variables objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Types de données personnalisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Validation et conversion des types de données . . . . . . . . . . . . . . . . . . . . . . . . .153153155157157158159163167168169Portée et durée de vie des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Portée de niveau procédure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Portée de niveau module privée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Portée de niveau module publique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Variables statiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172172172173173Traitement entre applications à l’aide de variables objets . . . . . . . . . . . . . . .173

Table des matièresIXchapitre 7Contrôler les programmes VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177Répéter une série d’instructions : les boucles . . . . . . . . . . . . . . . . . . . . . . . . . .La boucle While Wend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .La boucle Do Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .La boucle For Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .La boucle For Each Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177178181185189Utiliser des instructions conditionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .La structure de contrôle If Then Else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .La structure de contrôle Select Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192193197Définir l’instruction suivante avec GoTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198Interagir avec l’utilisateur via des boîtes de dialogue . . . . . . . . . . . . . . . . . . .La fonction InputBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .La méthode InputBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .La fonction MsgBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Affichage de boîtes de dialogue Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198199202204209Utiliser les opérateurs logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213Trier des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214chapitre 8Fonctions Excel et VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217Utiliser les fonctions Excel dans VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217Créer des fonctions Excel personnalisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218Intégrer une fonction via l’Explorateur d’objets . . . . . . . . . . . . . . . . . . . . . . .Insérer une fonction VBA dans votre code . . . . . . . . . . . . . . . . . . . . . . . . . . . .Insérer une fonction Excel dans votre code . . . . . . . . . . . . . . . . . . . . . . . . . . . .219219220Recommandations pour l’écriture de fonctions Excel . . . . . . . . . . . . . . . . . . .Les limites de la cellule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221221Principales fonctions VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222

XProgrammation Excel avec VBAchapitre 9Manipuler des chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229Modifier des chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Concaténer des chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Insérer des caractères non accessibles au clavier . . . . . . . . . . . . . . . . . . . . . . . .Répéter une série de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Supprimer les espaces superflus d’une chaîne . . . . . . . . . . . . . . . . . . . . . . . . . .Extraire une partie d’une chaîne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Effectuer des remplacements au sein d’une chaîne . . . . . . . . . . . . . . . . . . . . . .Modifier la casse des chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . .229229231232233233234235Comparer des chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .236Rechercher dans les chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . .Rechercher une chaîne dans une chaîne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Scinder une chaîne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Rechercher une chaîne dans une variable de matrice . . . . . . . . . . . . . . . . . . . .237237240241chapitre 10Déboguer et gérer les erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245Les étapes et les outils du débogage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Test du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Exécuter pas à pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .La fenêtre Variables locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Les points d’arrêt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Modifier l’ordre d’exécution des instructions . . . . . . . . . . . . . . . . . . . . . . . . . . .La fenêtre Exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Les espions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .La pile des appels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245246248249250251252252254Exemple de débogage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Recherche du bogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Résolution du bogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255256258Gestion des erreurs et des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261Exemple de gestion d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262

Table des matièresXIchapitre 11Intégrer des applications VBA dans l’interface d’Excel . . . . . . . . . . .265Affecter une macro à un raccourci clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . .265Personnaliser le ruban et la barre d’outils Accès rapide . . . . . . . . . . . . . . . .266Affecter une macro à un bouton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268Affecter une macro à un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268Troisième partieDévelopper des interfacesutilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271chapitre 12Créer des interfaces utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273Les phases de développement de feuilles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273Créer une feuille . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274Les contrôles de la boîte à outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Outil Sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contrôle Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contrôle TextBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contrôle ComboBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contrôle Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contrôle ListBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contrôle CheckBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contrôle OptionButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contrôle ToggleButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contrôle CommandButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contrôle TabStrip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contrôle MultiPage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contrôle ScrollBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contrôle SpinButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . er des contrôles sur une feuille . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Copier-coller des contrôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Sélectionner plusieurs contrôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Supprimer des contrôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283285286287

XIIProgrammation Excel avec VBAMise en forme des contrôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .La grille . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Aligner les contrôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Uniformiser la taille des contrôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Uniformiser l’espace entre les contrôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Centrer les contrôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Réorganiser les boutons de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Grouper ou séparer des contrôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287287289290290291292292Personnaliser la boîte à outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Ajouter/supprimer un contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Ajouter/su

programmation Excel. Du simple enregistrement de macros à la conception d'interfaces utilisateur et au débogage de vos programmes, vous trouverez ici toutes les informations . 101 Les barres d'outils. 105 Paramétrer Visual Basic Editor. 108 DEuxIèmE PaRTIE Programmer en Visual Basic .