Introduction A. Introduction 15 B. À qui s'adresse ce livre? 15 C. Qu est-ce qu une macro? 15 D. Quel intérêt de faire des macros? 16 E. Contenu de ce livre 16 L'éditeur de Visual Basic A. Introduction 19 B. Comment lancer Visual Basic Editor? 20 1. Version Excel 03 (ou antérieure) 20 2. Version Excel 07 ou postérieure 20 C. L interface 21 1. Les modules 22 2. Les boîtes de dialogue personnalisées 24 3. Les barres d outils 25 La programmation en Visual Basic A. Introduction 29 B. Qu'est-ce qu'un objet? 29 1/16
1. Propriété d'un objet 29 2. Méthode d'un objet 29 C. Règle de codification 30 1. Association d'objets 30 2. Association de propriétés ou de méthodes 31 D. Codification des cellules et des plages de cellules 31 1. La cellule 31 2. La plage de cellules 32 3. Les cellules nommées 32 E. Signification du signe = 32 F. Les procédures 33 G. Les fonctions 33 Premier programme A. Introduction 37 B. L Enregistreur de macros 37 1. Version Excel 2003 (et inférieure) 38 2. Version Excel 2007 (et supérieure) 39 C. Premier exercice 40 D. Examen du code 44 E. Exécution du code 44 2/16
F. Synthèse 45 Les variables A. Introduction 49 B. Qu'est-ce qu'une variable? 49 C. Déclaration d'une variable 50 1. Déclaration obligatoire ou pas? 50 2. Type de variable 51 a. Déclaration de texte 51 b. Déclaration de dates 51 c. Déclaration d'objets 51 d. Déclaration de nombres 51 e. Déclaration booléenne 52 f. Déclaration fourre-tout 52 3. L'instruction Dim 52 4. L'instruction Static 52 5. L'instruction Public 53 D. Cas pratique de l'utilisation d'une variable 54 E. Les tableaux 55 1. Présentation 55 2. Déclaration 55 3. Utilisation 56 4. Chargement d'un tableau 56 5. Redimensionnement d'un tableau 57 6. Tableau à plusieurs dimensions 58 7. L'avantage des tableaux 58 3/16
Les conditions A. Introduction 61 B. L'instruction If 61 1. Présentation 61 2. Exemple d'application 62 3. Explication 63 4. Transformation du code 63 5. Raccourci d'écriture 64 6. Condition imbriquée 65 C. L'instruction SELECT CASE 66 1. Présentation 66 2. Exemple d'utilisation 66 a. Test sur une seule valeur 66 b. Test sur plusieurs valeurs non contiguës 67 c. Test sur des valeurs contiguës 67 3. Réversibilité 68 D. IF ou SELECT CASE? 69 E. Exemple d utilisation 69 1. Présentation du problème 69 2. Création des paramètres 70 3. Création du test dans le programme 71 4. Programme complet 72 Les boucles A. Introduction 75 4/16
B. L'instruction For... Next 75 1. Premier exemple de boucle 76 2. Explication du code 76 3. Exemple de boucle avec deux variables 77 a. Étape n 1 77 b. Étape n 2 77 c. Étape n 3 77 d. Synthèse 78 C. Boucle selon condition 78 1. While... Wend 78 a. Principe 78 b. Exemple d'application 78 c. Contrainte 79 2. Exemple de code 79 3. Do... Loop 82 a. Présentation 82 b. Exemple d'application 83 c. Explication du code 84 d. Amélioration du code 84 e. Travailler sur deux feuilles 86 D. Boucle sur des objets Excel 87 1. Présentation 87 2. Explication du code 87 Débogage A. Introduction 91 B. Présentation 91 5/16
C. Lecture "pas à pas" 92 D. Espionner les variables 93 E. La fenêtre Espions 94 F. Le point d'arrêt 95 G. Arrêt selon condition 97 H. Exemple d'application 98 1. Résolution de la première erreur 99 2. Résolution de la seconde erreur 101 Structure d'un programme A. Introduction 107 B. Principe de la programmation modulaire 107 C. Paramètres d'appel 107 1. Contrainte 107 2. Exemple d application depuis une feuille de calcul 108 3. Transmettre une plage de cellules 109 4. Faire un appel depuis une procédure 110 D. Exemple d'application 111 1. Étape 1 : création du code pour la première cellule 112 2. Étape 2 : extraction du calcul de la somme dans une fonction 112 3. Étape 3 : création de la fonction Moyenne 113 4. Étape 4 : indépendance vis-à-vis du nombre de cellules à additionner 114 6/16
5. Étape 5 : création de la boucle pour les lignes 114 6. Étape 6 : création de la boucle sur les colonnes 115 7. Conclusion 116 E. Accéder aux procédures et fonctions d un programme 117 Les fonctions de base A. Les opérateurs 121 1. Les opérateurs arithmétiques 121 2. Les opérateurs de comparaison 122 3. Les opérateurs logiques (ou booléens) 123 B. Conversion de variable 125 1. Fonctions de conversion 125 2. Tester une variable 125 C. Fonctions mathématiques 126 1. Fonctions usuelles 126 2. Les fonctions Excel 127 Gérer les chaînes de caractères A. Introduction 131 B. Fonctions de base 131 1. L'opérateur & 131 2. L'instruction Left 133 3. L'instruction Right 133 4. L'instruction Len 133 a. Extraction d'une partie d'une cellule 135 5. Remplacement 135 7/16
a. Fonction Mid 135 b. Fonction Replace 136 6. Positionnement d'un caractère 136 7. Découper une chaîne 138 8. Suppression des espaces 138 9. Tous les caractères en majuscules 138 10. Tous les caractères en minuscules 138 11. Majuscules et minuscules 139 12. Inverser les lettres 139 13. Comparaison de chaînes 139 a. Fonction StrComp 139 b. Fonction Like 140 14. Les caractères ASCII 141 C. Lire un fichier texte 142 1. Ouvrir le fichier texte 142 a. Le chemin et le nom du fichier 143 b. Le type d'accès 143 c. Numéro de fichier 143 2. Lire une ligne 143 3. L'instruction EOF 143 4. Fermer un fichier 144 5. Exercice : Extraire les données d'un fichier texte 144 a. Ouvrir et lire le fichier 145 b. Découpage en colonne 145 c. Déterminer la structure du fichier 146 d. Écrire le résultat dans Excel 148 e. Gestion des appels des procédures 149 D. Découpage selon un caractère de séparation 150 1. Récupération des lignes souhaitées 151 2. Segmentation sur le caractère virgule 152 3. Segmentation sur le caractère espace 152 4. Concaténation des villes 153 8/16
E. Création d'un fichier texte 155 1. Création d'un fichier 155 2. Écriture d'une ligne 155 3. Déclaration des variables 156 4. Exemple d application 156 Gestion des dates et des heures A. Introduction 161 B. Introduction aux dates 161 1. Paramétrer les dates 161 2. Est-ce que ma cellule contient une date? 163 3. Mettre en forme une date 164 C. Les fonctions de base 165 D. Les fonctions d'extraction 166 1. Extraction sur les dates 166 2. Extraction sur les heures 167 E. L'instruction DateSerial 167 1. Convertir un nombre en date 167 2. Effectuer des opérations sur les dates 168 3. Manipulation sur les dates 168 4. Intégration dans une boucle 169 F. Calculer la différence entre deux dates 171 1. La fonction DATEDIF dans Excel 171 2. La fonction DATEDIFF en VBA 172 3. Intégration de la fonction DATEDIF d Excel en VBA 172 9/16
G. Fonctions sur les semaines 173 1. Quel jour dans la semaine? 173 2. Nombre de jours ouvrés dans la semaine 173 3. Numéro de semaine 173 4. Jours fériés 174 Travail sur un classeur Excel A. Introduction 179 B. Manipulation sur les classeurs 179 1. Différence entre Worbooks et ActiveWorkbook 180 2. Ouvrir un classeur 180 3. Fermer un classeur 181 4. Enregistrer un classeur 181 5. Enregistrer un classeur sous un nouveau nom 181 C. Les propriétés d'un classeur 181 D. Interagir sur l'application Excel 183 E. L'objet Application 184 1. ScreenUpdating 184 2. DisplayAlerts 184 3. StatusBar/DisplayStatusBar 185 4. La boîte de dialogue Ouvrir 185 5. La boîte de dialogue Sauver sous 185 6. Agir sur les commandes 186 7. Activer les déplacements à la souris 186 8. Ajouter un temps de latence 186 9. Appel de fonctions de calcul d Excel 187 10/16
Travail sur les fichiers A. Introduction 193 B. Opération sur les fichiers 193 1. Copier un fichier 193 2. Renommer un fichier 194 3. Déplacer un fichier 194 4. Supprimer un fichier 194 5. Récupérer l'heure et la date d'un fichier 195 6. Trouver la taille d'un fichier 195 7. Trouver un fichier dans un répertoire 195 C. Opérations sur les répertoires 196 1. Définir un répertoire de travail 196 2. Créer un répertoire 197 3. Supprimer un répertoire 197 4. Test pour savoir si un répertoire existe 197 D. "Balayer" un répertoire 198 1. Boucle sur les fichiers 198 2. Boucle sur les répertoires 198 3. L'instruction FileSearch 200 4. Création d une boucle récursive 200 E. Récupérer des données sans ouvrir un classeur 202 F. Sélectionner un répertoire 203 G. Sélectionner un fichier 203 Optimisation 11/16
A. Introduction 207 B. Amélioration du code de l'enregistreur de macros 207 1. Enregistrement d'une macro 208 2. L'instruction Select 209 3. L'instruction Copy 209 4. Transfert de données 209 5. Le bloc de données With... End With 210 6. Le code optimisé 210 C. Instructions de recherche 211 1. La méthode FIND 211 2. Résultat d'une recherche 211 3. Recherche de l'élément suivant 212 4. Options de recherche 213 5. Trouver le numéro de la ligne 214 D. Optimisation dans un tableau en mémoire 215 1. Utilité de travailler avec des tableaux en mémoire 215 2. Tableau à une ou deux dimensions 215 a. Tableau à une dimension 215 b. Tableau à deux dimensions 216 3. Insérer des données dans un tableau en mémoire 218 4. Effacement d'un tableau 220 5. Redimensionnement d'un tableau 221 6. Taille d'un tableau 221 7. Rechercher dans un tableau 222 E. Éviter les boucles (optimisation d'une somme) 224 F. Une API pour les millisecondes 226 G. L'environnement 64 Bits 227 12/16
1. L'instruction PtrSafe 227 2. Les variables 64 bits 227 3. Cohabitation plateforme 32 bits/64 bits 227 H. Connexion avec une base Access 228 1. Présentation 228 2. Mise en œuvre 229 3. Mettre à jour une base Access depuis Excel 232 Appel d'applications externes A. Introduction 235 B. Supprimer les dll manquantes 235 C. L'instruction CreateObject 237 D. Envoi de mail Outlook 238 1. Programme pour envoyer un courriel 238 2. Explication du code 239 3. Boucles sur vos contacts saisis dans une colonne 239 E. Création d'un fichier PDF 239 1. Fonction pour la génération d'un fichier PDF 240 2. Export d'un classeur en entier 241 3. Export d'une feuille de calcul en PDF 242 Programme lié à des objets graphiques A. Rappel du lancement par Visual Basic Editor 245 13/16
B. Combinaison de touches A 8 245 C. Lancement à l aide d un bouton ou d un autre objet 246 1. Les boutons 246 2. Les cases d option (ou boutons radio) 248 3. Les menus déroulants 251 4. Positionnement des objets 255 D. Procédure Auto_Open/Auto_Close 257 E. Événement dans une feuille de calcul 257 Les boîtes de dialogue personnalisées A. Introduction 261 B. Créer une boîte de dialogue 261 1. Insérer un nouveau UserForm 261 2. Écrire du code dans un UserForm 263 3. Faire référence à un UserForm 264 C. Les événements 265 D. Les contrôles 266 E. Positionnement des contrôles 266 F. Ordre de tabulation 271 Les contrôles 14/16
A. Introduction 275 B. Les étiquettes (ou labels ou intitulés) 275 C. Les zones de texte (ou TextBox) 277 D. Les Boutons (ou CommandButton) 279 1. Ajouter un bouton 279 2. Le bouton Annuler 279 3. Le bouton OK 279 E. Les cases à cocher (Checkbox) 280 F. Les boutons d option (OptionButton ou bouton Radio) 281 G. Les zones de liste (ou ListBox) 283 1. Présentation 283 2. Manipuler les données de la liste 285 3. Alimenter une liste dans le programme 287 H. Les zones de liste modifiables (les ComboBox ou Menus déroulants) 289 I. Synthèse 291 Gestion des erreurs A. Introduction 295 B. Les instructions pour la gestion des erreurs 295 1. On Error 295 2. L'instruction Resume 296 15/16
3. L'instruction Err 296 4. GoTo 296 5. GoTo 0 296 C. Redirection des erreurs 297 1. Exemple 1 297 2. Exemple 2 299 3. Exemple 3 299 Annexes A. Types de variables 303 B. Collections d'objets 305 C. Liste des constantes 306 D. Liste des codes erreurs transmis par Visual Basic 308 E. Liste des caractères non imprimables 310 16/16