Programmation Excel avec VBA
Compatible avec toutes les versions d'Excel
3e édition
Mikaël Bidault
Éditions Eyrolles
Introduction
1
Compléments VBA et compléments Office
2
VBA, pour quoi faire ?
2
Des programmes4
Une application hôte et des projets5
Un langage de programmation5
Un environnement de travail7
Conventions typographiques8
Codes sources des exemples du livre
9
Première partie
Découvrir la programmation Excel11
Chapitre 1
Notions fondamentales de la programmation orientée objet (POO)
13
Comprendre le concept d'objet
13
Objets et collections d'objets14
Application hôte et modèles d'objets15
Accéder aux objets19
Les propriétés20
Les méthodes25
Les événements26
Les fonctions26
Le modèle d'objets d'Excel
27
Chapitre 2
Premières macros
31
Créer une macro Grasltalique
32
Afficher l'onglet Développeur32
Démarrer l'enregistrement33
Enregistrer les commandes de la macro35
Exécuter la macro35
Structure de la macro36
Améliorer la macro41
Une autre méthode d'enregistrement
43
Enregistrement43
Structure de la macro44
Écrire la macro
44
Exécution de la macro46
Choisir l'accessibilité des macros
46
Accessibilité globale ou limitée47
Classeurs et modèles47
Le classeur de macros personnel48
Les macros complémentaires49
Définir le classeur de stockage lors de l'enregistrement d'une macro51
Accéder aux macros d'un classeur spécifique52
Chapitre 3
Déplacement et sélection dans une macro Excel
55
Méthodes de sélection dans une feuille Excel
56
Clavier56
Souris57
Notion de cellule active57
Références relatives et références absolues58
Coder les déplacements effectués lors de l'enregistrement d'une macro
60
Référence absolue aux cellules60
Référence relative aux cellules68
Référence aux cellules en fonction de leur contenu70
Référence aux plages de cellules nommées72
Chapitre 4
Découvrir Visual Basic Editor
75
Accéder à Visual Basic Editor
75
Les outils et les fenêtres de Visual Basic Editor
78
L'Explorateur de projet79
L'Explorateur d'objets82
La fenêtre UserForm88
La fenêtre Code91
La fenêtre Propriétés103
Les barres d'outils107
Paramétrer Visual Basic Editor
110
Deuxième partie
Programmer en Visual Basic113
Chapitre 5
Développer dans Visual Basic Editor
115
Structure des programmes Visual Basic
115
Les modules115
Les procédures116
Les instructions118
Les différents types de procédures
120
Procédures Sub120
Procédures Function124
Procédures Property126
Des projets bien structurés
131
Ajouter un module131
Supprimer un module132
Créer une procédure
134
Écrire l'instruction de déclaration134
La boîte de dialogue Ajouter une procédure135
La notion de portée136
Écriture et mise en forme du code137
Déplacer une procédure142
Appel et sortie d'une procédure
142
Appel d'une procédure Sub142
Appels de procédures Function et Property144
Passage d'arguments144
Sortie d'une procédure146
Sortie d'un programme147
Exécuter du code
148
Aide à l'écriture de code
148
Vérification automatique de la syntaxe148
Complément automatique des instructions149
Info express automatique150
Chapitre 6
Variables et constantes
151
Déclarer une variable
151
Déclaration implicite151
Déclaration explicite152
Types de données des variables
155
Chaînes de caractères155
Valeurs numériques157
Valeurs booléennes159
Dates159
Type Variant160
Variables de matrice161
Variables objets165
Types de données personnalisés169
Constantes170
Validation et conversion des types de données171
Portée et durée de vie des variables
174
Portée de niveau procédure174
Portée de niveau module privée174
Portée de niveau module publique175
Variables statiques175
Traitement entre applications à l'aide de variables objets
175
Chapitre 7
Contrôler les programmes VBA
179
Répéter une série d'instructions : les boucles
179
La boucle While...Wend180
La boucle Do...Loop183
La boucle For...Next187
La boucle For Each...Next191
Utiliser des instructions conditionnelles
194
La structure de contrôle If...Then...Else195
La structure de contrôle Select Case199
Définir l'instruction suivante avec GoTo
200
Interagir avec l'utilisateur via des boîtes de dialogue
200
La fonction InputBox201
La méthode InputBox204
La fonction MsgBox206
Affichage de boîtes de dialogue Excel211
Utiliser les opérateurs logiques
215
Trier des données
216
Chapitre 8
Fonctions Excel et VBA
219
Utiliser les fonctions Excel dans VBA
219
Créer des fonctions Excel personnalisées
220
Intégrer une fonction via l'Explorateur d'objets
221
Insérer une fonction VBA dans votre code221
Insérer une fonction Excel dans votre code222
Recommandations pour l'écriture de fonctions Excel
223
Les limites de la cellule223
Principales fonctions VBA
224
Chapitre 9
Manipuler des chaînes de caractères
231
Modifier des chaînes de caractères
231
Concaténer des chaînes231
Insérer des caractères non accessibles au clavier233
Répéter une série de caractères234
Supprimer les espaces superflus d'une chaîne235
Extraire une partie d'une chaîne235
Effectuer des remplacements au sein d'une chaîne236
Modifier la casse des chaînes de caractères237
Comparer des chaînes de caractères
238
Rechercher dans les chaînes de caractères
239
Rechercher une chaîne dans une chaîne239
Scinder une chaîne242
Rechercher une chaîne dans une variable de matrice243
Chapitre 10
Écrire et lire dans la base de registre
247
Découvrir la base de registre
247
Lire et écrire dans la base de registre avec VBA
248
Créer ou modifier une clé de registre
250
Lire la valeur d'une clé de la base de registre
251
Exemple VBA : gestion d'une licence via la base de registre
252
Chapitre 11
Déboguer et gérer les erreurs
265
Les étapes et les outils du débogage
265
Test du projet266
Exécuter pas à pas268
La fenêtre Variables locales269
Les points d'arrêt270
Modifier l'ordre d'exécution des instructions271
La fenêtre Exécution272
Les espions272
La pile des appels274
Exemple de débogage
275
Recherche du bogue276
Résolution du bogue278
Gestion des erreurs et des exceptions
281
Exemple de gestion d'erreur
282
Chapitre 12
Intégrer des applications VBA dans l'environnement d'Excel
285
Affectations et exécution de macros
286
Affecter un raccourci clavier à une macro286
Affecter une macro à un bouton de commande287
Affecter une macro à un objet288
Exécuter une macro à partir de la barre d'outils Accès rapide290
Exécuter une macro à partir du ruban292
Créer un onglet personnalisé avec Custom UI Editor for Microsoft Office
294
Les exemples de fichiers XML de Custom UI Editor295
Analyse du fichier XML Custom Tab297
Validation d'un fichier XML299
Affectation de macros aux contrôles du ruban : les Callbacks300
Les contrôles disponibles pour le ruban303
La banque d'images Microsoft Office305
Création de l'onglet Audit306
Troisième partie
Développer des interfaces utilisateur321
Chapitre 13
Créer des interfaces utilisateur
323
Les phases de développement de feuilles
323
Créer une feuille
324
Les contrôles de la boîte à outils
326
Outil Sélection326
Contrôle Label326
Contrôle TextBox327
Contrôle ComboBox327
Contrôle Frame328
Contrôle ListBox328
Contrôle CheckBox329
Contrôle OptionButton330
Contrôle ToggleButton330
Contrôle CommandButton330
Contrôle TabStrip331
Contrôle MultiPage331
Contrôle ScrollBar332
Contrôle SpinButton333
Placer des contrôles sur une feuille
333
Copier-coller des contrôles335
Sélectionner plusieurs contrôles336
Supprimer des contrôles337
Mise en forme des contrôles
337
La grille337
Aligner les contrôles339
Uniformiser la taille des contrôles340
Uniformiser l'espace entre les contrôles340
Centrer les contrôles341
Réorganiser les boutons de commande342
Grouper ou séparer des contrôles342
Personnaliser la boîte à outils
343
Ajouter/suppri mer un contrôle343
Ajouter/supprimer une page346
Afficher/masquer une feuille
348
Chapitre 14
Exploiter les propriétés des contrôles
351
Propriété Name
352
Apparence
353
Alignment353
BackStyle354
BackColor354
BorderStyle355
BorderColor355
Caption355
ControlTipText356
ForeColor356
SpecialEffect356
Style357
Value357
Visible359
Comportement
361
AutoSize361
AutoTab362
AutoWordSelect363
Cancel363
Default364
Enabled364
EnterKeyBehavior366
HideSelection366
Locked367
MaxLength367
MultiLine367
SelectionMargin368
Style368
TabKeyBehavior369
TextAlign369
TripleState369
Wordwrap370
Défilement
371
ScrollBars371
KeepScrollsVisible372
Delay372
Max et Min373
SmallChange373
LargeChange374
Divers
374
Accelerator374
GroupName375
HelpContextID375
MouseIcon376
MousePointer376
TabIndex378
TabStop379
Tag379
Emplacement
380
Height et Width380
Left et Top380
StartUpPosition380
Image
382
Picture382
PictureAlignment383
PicturePosition384
PictureSizeMode384
PictureTiling384
Police
385
Font385
Chapitre 15
Maîtriser le comportement des contrôles
387
Créer des procédures événementielles
387
Créer une procédure387
Les événements393
Exemples d'exploitation des contrôles
398
Label398
Contrôle TextBox400
ComboBox402
ListBox407
CheckBox et OptionButton410
ScrollBar410
SpinButton412
Exploiter les informations d'une feuille VBA414
Quatrième partie
Notions avancées de la programmation Excel417
Chapitre 16
Programmer des événements Excel
419
L'objet Application
419
Déclaration et instanciation de l'objet Application420
Création de procédures événementielles de niveau application421
Propriétés de l'objet Application422
Méthodes de l'objet Application423
L'objet ThisWorkbook
424
L'objet Worksheet
426
Chapitre 17
Protéger et authentifier des projets VBA
429
Les virus macros
429
Se protéger des virus macros
429
Définir un niveau de sécurité430
Les signatures numériques432
Sauvegarder des macros433
Protéger l'accès aux macros
434
Verrouiller un projet434
Limiter les droits d'exécution d'une macro435
Authentifier ses macros
445
Obtenir une authentification445
Authentifier une macro446
Chapitre 18
Exemple complet d'application Excel
447
Présentation du projet d'application Excel
447
Avant de commencer448
Identification des informations à recueillir449
Définition de la structure du programme450
Créer un modèle Excel
455
Définir et créer des interfaces
457
Feuille fmContratAuteur457
Feuille fmContratConditions468
Feuille fmContratDates480
Feuille fmContratlmpression485
Feuille fmContratFin490
Écriture des procédures d'édition de documents
491
Édition des feuilles de paie492
Mise à jour du tableau Word494
Annexe A
Mots-clés pour la manipulation de fichiers et de dossiers
497
Annexe B
Créer un programme d'installation pour vos applications Excel avec Inno Setup
499
Présentation d'Inno Setup
499
Création du programme d'installation
500
Test du programme d'installation
508
Correction du programme d'installation
511
Index515