0% ont trouvé ce document utile (0 vote)
78 vues25 pages

VBA Excel 2016 : Guide Pratique et Exercices

Transféré par

walidba
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
78 vues25 pages

VBA Excel 2016 : Guide Pratique et Exercices

Transféré par

walidba
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

VBAExcel2016 - Créez des applications professionnelles

VBA
VBAExcel2016 - Créez des applications professionnelles
Ce livre est destiné aux utilisateurs d'Excel 2016 voulant s'initier au lan-
gage VBA ou approfondir leurs connaissances dans ce domaine. Bien
qu'une connaissance élémentaire des principes de programmation soit
Ingénieur et MBA HEC, Claude
DUIGOU exerce ses activités de
Formateur et de Consultant en
Excel2016
Créez des applications
recommandée, elle n'est pas impérative. La première partie du livre entreprise depuis plus de 15 ans.
est en effet consacrée aux fondamentaux et propose une introduction Ses différentes missions le condui-
à la programmation en VBA dans ses applications aux objets Excel. sent à intervenir auprès d'entre-
Avec plus de 200 exercices de difficulté croissante, basés sur des prises de tailles diverses pour la
réalisation, notamment en VBA, de

professionnelles
exemples concrets, l'ouvrage couvre les domaines suivants : l'auto-
matisation des tâches répétitives, l'ajout de fonctions personnalisées, logiciels dans des domaines tels
le contrôle des principaux objets d'Excel (classeur, feuille, cellule, gra- que l'aide à la décision, le contrôle
phique), la collaboration et l'échange de données avec les applications de gestion, la gestion des stocks,
de la suite Office, la prise en charge du format XML, la publication de la gestion du temps, le contrôle
documents sur le Web, l'analyse de données, la gestion du multimé- budgétaire. Les systèmes qu'il dé-
dia ou encore l'utilisation de l'outil Power Query. veloppe font largement appel aux
possibilités et fonctionnalités
E x e rc ic e s e t c o rrig é s
Au terme de cette mise en pratique, vous pourrez adapter précisément
avancées d'Excel. Cette expé-
Excel à vos besoins et vous disposerez de tous les éléments qui vous
rience complète et variée lui per-
permettront de développer une application professionnelle avec VBA
met de proposer un livre très
Excel 2016.
pragmatique sur VBA Excel.
Les fichiers nécessaires à la réalisation des exercices, ainsi que les cor-
rigés, sont en téléchargement sur le site [Link].

Les chapitres du livre 172 QCM


Avant-propos • Procédures • Variables • Constantes • Types de don-
nées • Fonctions • Opérateurs • Structures de contrôle • Tableaux •
Téléchargement
[Link] 226 travaux pratiques et leurs corrigés
36 H de mise en pratique
Introduction à la programmation objet • Classeurs • Feuilles de calcul • ISSN 1765-7334
Cellules et plages • Graphiques • Échanges de fonctions entre Excel
et VBA • Boîtes de dialogue standards • Formulaires • Contrôles • ISBN : 978-2-7460-9927-2
Ajout d'objets liés et incorporés • Collaboration avec les applications
Microsoft • Programmation Web • Programmation du format XML •
Programmation système Windows • Matrice et tableau croisé dyna-
mique • Outils Power Query
9 782746 099272

27 H
Sur [Link] :
b Eléments nécessaires
à la réalisation des exercices.
b Exemples de code. Claude DUIGOU
Plus d’informations :
Introduction
Public du livre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Objectif du livre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Utilisation du livre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Aide à la réalisation des travaux pratiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Énoncés
Chapitre 1 : Procédures
Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Énoncé 1.1 Créer et utiliser une procédure privée . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Énoncé 1.2 Créer et utiliser une procédure publique. . . . . . . . . . . . . . . . . . . . . . . . . 40
Énoncé 1.3 Appeler une procédure à partir d'une autre procédure . . . . . . . . . . . . . . . 40
Énoncé 1.4 Appeler une procédure à partir d'un autre module . . . . . . . . . . . . . . . . . . 41
Énoncé 1.5 Appeler une procédure à partir d'un contrôle VBA . . . . . . . . . . . . . . . . . . 41
Énoncé 1.6 Utiliser une procédure à partir d'une feuille de calcul Excel . . . . . . . . . . . 42
Énoncé 1.7 Utiliser une procédure à partir d'un classeur Excel. . . . . . . . . . . . . . . . . . 42
Énoncé 1.8 Créer une fonction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Énoncé 1.9 Utiliser une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Énoncé 1.10 Utiliser des paramètres nommés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Chapitre 2 : Variables - Constantes - Types de données


Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Énoncé 2.1 Déclarer et utiliser une variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Énoncé 2.2 Déclarer et utiliser une constante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Énoncé 2.3 Utiliser la date système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Énoncé 2.4 Créer un type de données "PoissonTropical" défini par l'utilisateur . . . . . . . 52
Énoncé 2.5 Utiliser le type "PoissonTropical" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Énoncé 2.6 Renommer une feuille de calcul Excel . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Chapitre 3 : Fonctions - Opérateurs


Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Énoncé 3.1 Diviser deux nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Énoncé 3.2 Obtenir le reste d'une division entière . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Énoncé 3.3 Comparer des nombres et rechercher le plus petit d'entre eux. . . . . . . . . . 58
Énoncé 3.4 Donner le résultat d'un nombre élevé à la puissance N . . . . . . . . . . . . . . 59
Énoncé 3.5 Comparer deux chaînes de caractères. . . . . . . . . . . . . . . . . . . . . . . . . . 60
Énoncé 3.6 Effectuer un calcul factoriel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Énoncé 3.7 Calculer le pourcentage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Énoncé 3.8 Formater un mot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Énoncé 3.9 Rechercher un mot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Énoncé 3.10 Extraire une information d’une chaîne de caractères . . . . . . . . . . . . . . . . 63

Chapitre 4 : Structures de contrôle


Prérequis .................................................... 65
Énoncé 4.1 Vérifier que la saisie est numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Énoncé 4.2 Dire au revoir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Énoncé 4.3 Contrôler la saisie d'une consonne ou voyelle. . . . . . . . . . . . . . . . . . . . . 70
Énoncé 4.4 Afficher un message selon l'âge et le genre . . . . . . . . . . . . . . . . . . . . . . 70
Énoncé 4.5 Dire bonjour N fois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Énoncé 4.6 Compter de N en N jusqu'à M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Énoncé 4.7 Rendre obligatoire une saisie et contrôler la sortie . . . . . . . . . . . . . . . . . 73
Énoncé 4.8 Inverser l’ordre des caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Énoncé 4.9 Vérifier si un nombre est premier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Énoncé 4.10 Compter le nombre d’occurrences d’un nombre . . . . . . . . . . . . . . . . . . . 76

Chapitre 5 : Tableaux
Prérequis .................................................... 77
Énoncé 5.1 Déclarer un tableau accessible par toutes les procédures du projet. . . . . . 79
Énoncé 5.2 Déclarer un tableau accessible seulement par les procédures du module . 79
Énoncé 5.3 Utiliser un tableau déclaré dans une procédure . . . . . . . . . . . . . . . . . . . 79
Énoncé 5.4 Utiliser un tableau de niveau module . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Énoncé 5.5 Initialiser un tableau avec une boucle . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Énoncé 5.6 Déclarer et utiliser un tableau à deux dimensions. . . . . . . . . . . . . . . . . . 81
Énoncé 5.7 Déclarer et utiliser un tableau à plus de deux dimensions . . . . . . . . . . . . 81
Énoncé 5.8 Déclarer et utiliser un tableau dynamique . . . . . . . . . . . . . . . . . . . . . . . 82
Énoncé 5.9 Agrandir un tableau dynamique en préservant les valeurs initiales . . . . . . 82
Énoncé 5.10 Exploiter un tableau à l'aide d'une boucle . . . . . . . . . . . . . . . . . . . . . . . 83
Énoncé 5.11 Afficher un tableau dans un formulaire . . . . . . . . . . . . . . . . . . . . . . . . . 83

2
Chapitre 6 : Introduction à la programmation objet
Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Énoncé 6.1 Accéder à un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Énoncé 6.2 Lire les propriétés d'un objet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Énoncé 6.3 Modifier les propriétés d'un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Énoncé 6.4 Utiliser les méthodes d'un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Énoncé 6.5 Gérer les collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Énoncé 6.6 Gérer les événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Énoncé 6.7 Gérer les erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Énoncé 6.8 Créer une classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Énoncé 6.9 Utiliser la classe créée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Énoncé 6.10 Créer et utiliser une collection d’objets. . . . . . . . . . . . . . . . . . . . . . . . . . 95

Chapitre 7 : Classeurs
Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Énoncé 7.1 Connaître le classeur actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Énoncé 7.2 Afficher le classeur actif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Énoncé 7.3 Changer de classeur actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Énoncé 7.4 Enregistrer le classeur actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Énoncé 7.5 Ajouter un nouveau classeur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Énoncé 7.6 Enregistrer un classeur en précisant le dossier de destination . . . . . . . . . 100
Énoncé 7.7 Obtenir le chemin complet où se trouve le classeur . . . . . . . . . . . . . . . . 101
Énoncé 7.8 Fermer tous les classeurs en proposant de les enregistrer. . . . . . . . . . . . 102
Énoncé 7.9 Accueillir l'utilisateur par un message
de bienvenue à l'ouverture du classeur. . . . . . . . . . . . . . . . . . . . . . . . . 102
Énoncé 7.10 Choisir la feuille de calcul à l'ouverture du classeur . . . . . . . . . . . . . . . . 103
Énoncé 7.11 Mettre à jour tous les calculs avant la fermeture du classeur . . . . . . . . . 103
Énoncé 7.12 Mettre à jour tous les calculs avant l’impression . . . . . . . . . . . . . . . . . . 104
Énoncé 7.13 Consolider des données à partir de plusieurs classeurs . . . . . . . . . . . . . 105
Énoncé 7.14 Mettre à jour des données consolidées à l'ouverture du classeur . . . . . . . 106
Énoncé 7.15 Mettre à jour des données à partir
de plusieurs classeurs de manière permanente . . . . . . . . . . . . . . . . . . . 107
Énoncé 7.16 Créer une page de garde permettant d'accéder à plusieurs classeurs . . . . 107

3
Chapitre 8 : Feuilles de calcul
Prérequis ................................................... 109
Énoncé 8.1 Connaître le nom de la feuille active . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Énoncé 8.2 Renommer la feuille active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Énoncé 8.3 Prévenir lors du changement de feuille active
en rappelant le nom de l'ancienne feuille active . . . . . . . . . . . . . . . . . . 112
Énoncé 8.4 Effectuer un aperçu de la feuille active . . . . . . . . . . . . . . . . . . . . . . . . 113
Énoncé 8.5 Déclencher une action dès qu'une feuille est activée. . . . . . . . . . . . . . . 113
Énoncé 8.6 Déclencher une action dès qu'une cellule de la feuille active est activée . 114
Énoncé 8.7 Déclencher une action dès qu'une cellule
de la feuille active est modifiée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Énoncé 8.8 Déclencher une action dès que l'on double clique
sur une cellule de la feuille active. . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Énoncé 8.9 Ajouter une nouvelle feuille de calcul . . . . . . . . . . . . . . . . . . . . . . . . . 116
Énoncé 8.10 Supprimer une feuille de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Énoncé 8.11 Copier une feuille de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Énoncé 8.12 Connaître le nombre de feuilles du classeur. . . . . . . . . . . . . . . . . . . . . 117
Énoncé 8.13 Connaître les noms de toutes les feuilles de calcul . . . . . . . . . . . . . . . . 117
Énoncé 8.14 Afficher les noms de toutes les feuilles de calcul sous forme de liste. . . . 118
Énoncé 8.15 Rechercher une feuille de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Énoncé 8.16 Protéger toutes les feuilles de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Énoncé 8.17 Déprotéger toutes les feuilles de calcul . . . . . . . . . . . . . . . . . . . . . . . . 119

Chapitre 9 : Cellules et plages


Prérequis ................................................... 121
Énoncé 9.1 Activer une cellule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Énoncé 9.2 Connaître l'adresse de la cellule active . . . . . . . . . . . . . . . . . . . . . . . . 123
Énoncé 9.3 Récupérer la valeur d'une cellule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Énoncé 9.4 Récupérer la formule d'une cellule . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Énoncé 9.5 Modifier le contenu d'une cellule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Énoncé 9.6 Modifier le format d'une cellule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Énoncé 9.7 Sélectionner la colonne où se trouve la cellule active . . . . . . . . . . . . . . 125
Énoncé 9.8 Sélectionner toutes les cellules d'une feuille de calcul . . . . . . . . . . . . . . 126
Énoncé 9.9 Sélectionner toutes les cellules d'une plage définie . . . . . . . . . . . . . . . . 126
Énoncé 9.10 Sélectionner tout un tableau à partir d'une de ses cellules . . . . . . . . . . . 127
Énoncé 9.11 Sélectionner un tableau ou une liste nommée à partir de son nom . . . . . 127
Énoncé 9.12 Indiquer l'adresse de la cellule
sous la cellule active puis la sélectionner . . . . . . . . . . . . . . . . . . . . . . 128
Énoncé 9.13 Trouver la dernière cellule contenant une valeur d'une colonne . . . . . . . 128

4
Énoncé 9.14 Affecter la formule d'une cellule à une autre cellule . . . . . . . . . . . . . . . . 129
Énoncé 9.15 Affecter une formule à une cellule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Énoncé 9.16 Affecter la référence absolue d'une cellule à une autre cellule . . . . . . . . . 130
Énoncé 9.17 Affecter une valeur à une plage de cellules. . . . . . . . . . . . . . . . . . . . . . 130
Énoncé 9.18 Ajouter un commentaire à une cellule . . . . . . . . . . . . . . . . . . . . . . . . . 130
Énoncé 9.19 Remplir un tableau avec des nombres . . . . . . . . . . . . . . . . . . . . . . . . . 131
Énoncé 9.20 Afficher le nombre de colonnes, de lignes et de cellules d'une plage . . . . 131
Énoncé 9.21 Rechercher une valeur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Énoncé 9.22 Créer une série de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Énoncé 9.23 Trier une plage de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Énoncé 9.24 Copier une plage de données avec liaison aux données sources . . . . . . . 133
Énoncé 9.25 Effacer les valeurs d'une plage de données
avec demande de confirmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

Chapitre 10 : Graphiques
Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Énoncé 10.1 Créer un graphique dans une feuille à part . . . . . . . . . . . . . . . . . . . . . . 137
Énoncé 10.2 Renommer une feuille contenant un graphique . . . . . . . . . . . . . . . . . . . 138
Énoncé 10.3 Déplacer une feuille contenant un graphique . . . . . . . . . . . . . . . . . . . . 138
Énoncé 10.4 Créer un graphique incorporé dans une feuille de calcul. . . . . . . . . . . . . 138
Énoncé 10.5 Étendre la source de données d'un graphique incorporé . . . . . . . . . . . . . 139
Énoncé 10.6 Étendre la source de données d'un graphique
implanté dans une feuille graphique . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Énoncé 10.7 Modifier la présentation d’un graphique . . . . . . . . . . . . . . . . . . . . . . . . 141
Énoncé 10.8 Exporter un graphique dans un fichier image . . . . . . . . . . . . . . . . . . . . 141
Énoncé 10.9 Déclencher une action quand le graphique est sélectionné . . . . . . . . . . . 142
Énoncé 10.10 Déclencher une action suite un clic sur le graphique . . . . . . . . . . . . . . . 142

Chapitre 11 : Échanges de fonctions entre Excel et VBA


Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Énoncé 11.1 Calculer une commission dans une feuille
de calcul Excel avec une fonction VBA. . . . . . . . . . . . . . . . . . . . . . . . . 144
Énoncé 11.2 Calculer le prix HT à partir du taux de TVA
et du prix TTC avec une fonction VBA . . . . . . . . . . . . . . . . . . . . . . . . . 145
Énoncé 11.3 Calculer la valeur acquise d'un placement avec une fonction VBA . . . . . . 145
Énoncé 11.4 Rechercher le minimum dans une plage de cellules
avec une fonction Excel dans du code VBA . . . . . . . . . . . . . . . . . . . . . 146

5
Énoncé 11.5 Générer un nombre aléatoire à partir de code VBA
utilisant une formule Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Énoncé 11.6 Calculer l'annuité constante avec Excel à partir d'une fonction VBA . . . . 147
Énoncé 11.7 Supprimer tous les espaces inutiles et redondants
d’une plage de cellules contenant du texte . . . . . . . . . . . . . . . . . . . . . 148

Chapitre 12 : Boîtes de dialogue standards


Prérequis ................................................... 149
Énoncé 12.1 Afficher un message simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Énoncé 12.2 Demander une saisie sans contrôle particulier . . . . . . . . . . . . . . . . . . . 151
Énoncé 12.3 Appeler la boîte de dialogue "Ouvrir" de Windows . . . . . . . . . . . . . . . . 151
Énoncé 12.4 Appeler la boîte de dialogue "Couleurs" de Windows. . . . . . . . . . . . . . . 152
Énoncé 12.5 Choisir des boutons pour les boîtes de dialogue . . . . . . . . . . . . . . . . . . 153
Énoncé 12.6 Déterminer le bouton par défaut parmi plusieurs boutons proposés . . . . 154
Énoncé 12.7 Choisir et ajouter une icône à une boîte de dialogue . . . . . . . . . . . . . . . 154
Énoncé 12.8 Contrôler la saisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Énoncé 12.9 Effectuer une action selon le choix de l'utilisateur. . . . . . . . . . . . . . . . . 155
Énoncé 12.10 Effectuer un traitement tant que l'utilisateur réalise la saisie demandée . 156
Énoncé 12.11 Enregistrer un classeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Énoncé 12.12 Modifier la police de la feuille de calcul . . . . . . . . . . . . . . . . . . . . . . . 157
Énoncé 12.13 Modifier la couleur d’une plage de cellules . . . . . . . . . . . . . . . . . . . . . 158

Chapitre 13 : Formulaires
Prérequis ................................................... 159
Énoncé 13.1 Afficher un formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Énoncé 13.2 Afficher un formulaire en mode non modal . . . . . . . . . . . . . . . . . . . . . 161
Énoncé 13.3 Afficher un formulaire en détaillant son contenu . . . . . . . . . . . . . . . . . 161
Énoncé 13.4 Fermer un formulaire et libérer la mémoire . . . . . . . . . . . . . . . . . . . . . 162
Énoncé 13.5 Gérer le déplacement de la souris sur le formulaire . . . . . . . . . . . . . . . 163
Énoncé 13.6 Gérer le double clic de la souris sur le formulaire . . . . . . . . . . . . . . . . . 164
Énoncé 13.7 Afficher un formulaire à partir d'un autre formulaire . . . . . . . . . . . . . . . 164
Énoncé 13.8 Modifier le formulaire par programmation . . . . . . . . . . . . . . . . . . . . . . 165
Énoncé 13.9 Désactiver la croix de fermeture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

6
Chapitre 14 : Contrôles
Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Énoncé 14.1 Ajouter des contrôles par programmation . . . . . . . . . . . . . . . . . . . . . . . 169
Énoncé 14.2 Masquer puis réafficher des contrôles . . . . . . . . . . . . . . . . . . . . . . . . . 170
Énoncé 14.3 Déplacer les contrôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Énoncé 14.4 Rendre un contrôle dépendant d'un autre. . . . . . . . . . . . . . . . . . . . . . . 171
Énoncé 14.5 Faire réagir les contrôles à la frappe clavier . . . . . . . . . . . . . . . . . . . . . 172
Énoncé 14.6 Faire réagir les contrôles à la souris. . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Énoncé 14.7 Afficher une colonne de données d'Excel
avec le titre en en-tête dans une zone de liste . . . . . . . . . . . . . . . . . . . 173
Énoncé 14.8 Afficher dans Excel une donnée sélectionnée dans une zone de liste . . . . 174
Énoncé 14.9 Reporter plusieurs lignes d'une zone de liste dans des cellules d'Excel . . . 174
Énoncé 14.10 Affecter à un tableau Excel la saisie effectuée
dans une liste déroulante modifiable . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Énoncé 14.11 Trier un tableau Excel à partir d'une liste déroulante modifiable . . . . . . . 176
Énoncé 14.12 Utiliser une liste déroulante à deux colonnes
et affecter le choix à une plage Excel . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Énoncé 14.13 Utiliser des boutons d'option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Énoncé 14.14 Utiliser des cases à cocher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Énoncé 14.15 Intercepter une combinaison de touches . . . . . . . . . . . . . . . . . . . . . . . 179
Énoncé 14.16 Utiliser un bouton à bascule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Énoncé 14.17 Préparer une zone de saisie préremplie et sélectionnée . . . . . . . . . . . . . 181
Énoncé 14.18 Gérer des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

Chapitre 15 : Ajout d’objets liés et incorporés


Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Énoncé 15.1 Incorporer une image ou une photo. . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Énoncé 15.2 Incorporer WordPad dans Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Énoncé 15.3 Incorporer un document Word dans Excel . . . . . . . . . . . . . . . . . . . . . . 187
Énoncé 15.4 Lier un document externe à Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Énoncé 15.5 Incorporer une vidéo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Énoncé 15.6 Lier une vidéo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Énoncé 15.7 Créer un menu pour les objets liés ou incorporés . . . . . . . . . . . . . . . . . 190

7
Chapitre 16 : Collaboration avec les applications Microsoft
Prérequis ................................................... 191
Énoncé 16.1 Lancer Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Énoncé 16.2 Créer un document Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Énoncé 16.3 Ouvrir un document Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Énoncé 16.4 Modifier un document Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Énoncé 16.5 Lancer Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Énoncé 16.6 Envoyer un mail avec Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Énoncé 16.7 Lancer Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Énoncé 16.8 Créer une base de données Access. . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Énoncé 16.9 Importer une table entière Access (avec QueryTables). . . . . . . . . . . . . . 196
Énoncé 16.10 Importer certains champs d'une table Access (avec ADO) . . . . . . . . . . . 197
Énoncé 16.11 Importer certains enregistrements d'une table Access . . . . . . . . . . . . . . 197
Énoncé 16.12 Importer certains enregistrements de plusieurs tables Access . . . . . . . . 197
Énoncé 16.13 Importer les enregistrements d'une base
de données en utilisant une liaison ODBC . . . . . . . . . . . . . . . . . . . . . . 198

Chapitre 17 : Programmation Web


Prérequis ................................................... 199
Énoncé 17.1 Créer une page web statique à partir d'un classeur Excel. . . . . . . . . . . . 200
Énoncé 17.2 Créer une page web statique
à partir d’un classeur Excel chargé en mémoire . . . . . . . . . . . . . . . . . . 201
Énoncé 17.3 Afficher la boîte de dialogue "Publier en tant que page web" . . . . . . . . . 201
Énoncé 17.4 Publier le classeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Énoncé 17.5 Publier une feuille du classeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Énoncé 17.6 Publier une plage de données d’une feuille du classeur. . . . . . . . . . . . . 203
Énoncé 17.7 Mettre à jour toutes les pages web . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Énoncé 17.8 Mettre à jour toutes les pages web selon certains critères . . . . . . . . . . . 204
Énoncé 17.9 Ajouter un lien hypertexte à une cellule. . . . . . . . . . . . . . . . . . . . . . . . 204

Chapitre 18 : Programmation du format XML


Prérequis ................................................... 205
Énoncé 18.1 Sauvegarder un classeur Excel au format XML . . . . . . . . . . . . . . . . . . . 206
Énoncé 18.2 Importer des données au format XML . . . . . . . . . . . . . . . . . . . . . . . . . 206
Énoncé 18.3 Exporter des données Excel au format XML . . . . . . . . . . . . . . . . . . . . . 207
Énoncé 18.4 Ouvrir un fichier XML dans Excel 2016 . . . . . . . . . . . . . . . . . . . . . . . 208
Énoncé 18.5 Créer un fichier GPX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

8
Énoncé 18.6 Lire directement un fichier XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Énoncé 18.7 Effectuer une requête sur un fichier XML . . . . . . . . . . . . . . . . . . . . . . . 209

Chapitre 19 : Programmation système Windows


Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Énoncé 19.1 Générer un son bref (bip) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Énoncé 19.2 Connaître les types des unités logiques . . . . . . . . . . . . . . . . . . . . . . . . 212
Énoncé 19.3 Masquer la croix de fermeture des formulaires personnalisés . . . . . . . . . 212
Énoncé 19.4 Calculer le temps d’exécution d’une procédure . . . . . . . . . . . . . . . . . . . 213
Énoncé 19.5 Récupérer le dossier temporaire et le dossier système Windows . . . . . . . 214

Chapitre 20 : Matrice et tableau croisé dynamique


Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Énoncé 20.1 Rechercher une information dans une plage de données . . . . . . . . . . . . 216
Énoncé 20.2 Rechercher une valeur avec doublons dans une plage de données . . . . . 217
Énoncé 20.3 Établir le chiffre d’affaires par représentant et par pays . . . . . . . . . . . . . 218
Énoncé 20.4 Créer un tableau croisé dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Énoncé 20.5 Gérer les étiquettes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Énoncé 20.6 Gérer les champs de valeurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Énoncé 20.7 Mettre à jour un tableau croisé dynamique. . . . . . . . . . . . . . . . . . . . . . 221

Chapitre 21 : Outil Power Query


Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Énoncé 21.1 Obtenir des données à partir du Web . . . . . . . . . . . . . . . . . . . . . . . . . 224
Énoncé 21.2 Créer une requête simple sur une page web . . . . . . . . . . . . . . . . . . . . . 225
Énoncé 21.3 Créer une requête avec filtre sur une page web. . . . . . . . . . . . . . . . . . . 225
Énoncé 21.4 Généraliser une requête avec filtre sur une page web . . . . . . . . . . . . . . 226
Énoncé 21.5 Créer une requête Power Query sur une base Access. . . . . . . . . . . . . . . 226
Énoncé 21.6 Fusionner deux requêtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

9
Corrigés
Chapitre 1 : Procédures
Prérequis ................................................... 229
Corrigé 1.1 Créer et utiliser une procédure privée . . . . . . . . . . . . . . . . . . . . . . . . . 230
Corrigé 1.2 Créer et utiliser une procédure publique . . . . . . . . . . . . . . . . . . . . . . . 230
Corrigé 1.3 Appeler une procédure à partir d'une autre procédure . . . . . . . . . . . . . . 230
Corrigé 1.4 Appeler une procédure à partir d'un autre module . . . . . . . . . . . . . . . . 231
Corrigé 1.5 Appeler une procédure à partir d'un contrôle VBA . . . . . . . . . . . . . . . . 231
Corrigé 1.6 Utiliser une procédure à partir d'une feuille de calcul Excel . . . . . . . . . . 232
Corrigé 1.7 Utiliser une procédure à partir d'un classeur Excel . . . . . . . . . . . . . . . . 232
Corrigé 1.8 Créer une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Corrigé 1.9 Utiliser une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Corrigé 1.10 Utiliser des paramètres nommés . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

Chapitre 2 : Variables - Constantes - Types de données


Prérequis ................................................... 235
Corrigé 2.1 Déclarer et utiliser une variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Corrigé 2.2 Déclarer et utiliser une constante . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Corrigé 2.3 Utiliser la date système. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Corrigé 2.4 Créer un type de données "PoissonTropical" défini par l'utilisateur . . . . . 238
Corrigé 2.5 Utiliser le type "PoissonTropical" . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Corrigé 2.6 Renommer une feuille de calcul Excel. . . . . . . . . . . . . . . . . . . . . . . . . 239

Chapitre 3 : Fonctions - Opérateurs


Prérequis ................................................... 241
Corrigé 3.1 Diviser deux nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Corrigé 3.2 Obtenir le reste d'une division entière . . . . . . . . . . . . . . . . . . . . . . . . . 242
Corrigé 3.3 Comparer des nombres et rechercher le plus petit d'entre eux . . . . . . . . 242
Corrigé 3.4 Donner le résultat d'un nombre élevé à la puissance N . . . . . . . . . . . . . 243
Corrigé 3.5 Comparer deux chaînes de caractères. . . . . . . . . . . . . . . . . . . . . . . . . 244
Corrigé 3.6 Effectuer un calcul factoriel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Corrigé 3.7 Calculer le pourcentage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Corrigé 3.8 Formater un mot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Corrigé 3.9 Rechercher un mot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Corrigé 3.10 Extraire une information d’une chaîne de caractères . . . . . . . . . . . . . . . 247

10
Chapitre 4 : Structures de contrôle
Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Corrigé 4.1 Vérifier que la saisie est numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Corrigé 4.2 Dire au revoir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Corrigé 4.3 Contrôler la saisie d'une consonne ou voyelle . . . . . . . . . . . . . . . . . . . . 250
Corrigé 4.4 Afficher un message selon l'âge et le genre. . . . . . . . . . . . . . . . . . . . . . 251
Corrigé 4.5 Dire bonjour N fois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Corrigé 4.6 Compter de N en N jusqu'à M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Corrigé 4.7 Rendre obligatoire une saisie et contrôler la sortie. . . . . . . . . . . . . . . . . 254
Corrigé 4.8 Inverser l’ordre des caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Corrigé 4.9 Vérifier si un nombre est premier . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Corrigé 4.10 Compter le nombre d’occurrences d’un nombre . . . . . . . . . . . . . . . . . . 256

Chapitre 5 : Tableaux
Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Corrigé 5.1 Déclarer un tableau accessible par toutes les procédures du projet . . . . . 259
Corrigé 5.2 Déclarer un tableau accessible
seulement par les procédures du module . . . . . . . . . . . . . . . . . . . . . . . 260
Corrigé 5.3 Utiliser un tableau déclaré dans une procédure. . . . . . . . . . . . . . . . . . . 260
Corrigé 5.4 Utiliser un tableau de niveau module . . . . . . . . . . . . . . . . . . . . . . . . . 261
Corrigé 5.5 Initialiser un tableau avec une boucle . . . . . . . . . . . . . . . . . . . . . . . . . 262
Corrigé 5.6 Déclarer et utiliser un tableau à deux dimensions . . . . . . . . . . . . . . . . . 262
Corrigé 5.7 Déclarer et utiliser un tableau à plus de deux dimensions . . . . . . . . . . . 263
Corrigé 5.8 Déclarer et utiliser un tableau dynamique . . . . . . . . . . . . . . . . . . . . . . 264
Corrigé 5.9 Agrandir un tableau dynamique en préservant les valeurs initiales . . . . . 265
Corrigé 5.10 Exploiter un tableau à l'aide d'une boucle. . . . . . . . . . . . . . . . . . . . . . . 266
Corrigé 5.11 Afficher un tableau dans un formulaire . . . . . . . . . . . . . . . . . . . . . . . . 266

Chapitre 6 : Introduction à la programmation objet


Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Corrigé 6.1 Accéder à un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Corrigé 6.2 Lire les propriétés d'un objet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Corrigé 6.3 Modifier les propriétés d'un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Corrigé 6.4 Utiliser les méthodes d'un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Corrigé 6.5 Gérer les collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Corrigé 6.6 Gérer les événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Corrigé 6.7 Gérer les erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

11
Corrigé 6.8 Créer une classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Corrigé 6.9 Utiliser la classe créée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Corrigé 6.10 Créer et utiliser une collection d’objets . . . . . . . . . . . . . . . . . . . . . . . . 276

Chapitre 7 : Classeurs
Prérequis ................................................... 277
Corrigé 7.1 Connaître le classeur actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Corrigé 7.2 Afficher le classeur actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Corrigé 7.3 Changer de classeur actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Corrigé 7.4 Enregistrer le classeur actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Corrigé 7.5 Ajouter un nouveau classeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Corrigé 7.6 Enregistrer un classeur en précisant le dossier de destination . . . . . . . . 279
Corrigé 7.7 Obtenir le chemin complet où se trouve le classeur . . . . . . . . . . . . . . . 279
Corrigé 7.8 Fermer tous les classeurs en proposant de les enregistrer . . . . . . . . . . . 279
Corrigé 7.9 Accueillir l'utilisateur par un message
de bienvenue à l'ouverture du classeur . . . . . . . . . . . . . . . . . . . . . . . . 279
Corrigé 7.10 Choisir la feuille de calcul à l'ouverture du classeur . . . . . . . . . . . . . . . 280
Corrigé 7.11 Mettre à jour tous les calculs avant la fermeture du classeur . . . . . . . . . 280
Corrigé 7.12 Mettre à jour tous les calculs avant l'impression. . . . . . . . . . . . . . . . . . 280
Corrigé 7.13 Consolider des données à partir de plusieurs classeurs . . . . . . . . . . . . . 281
Corrigé 7.14 Mettre à jour des données consolidées à l'ouverture du classeur. . . . . . . 281
Corrigé 7.15 Mettre à jour des données à partir
de plusieurs classeurs de manière permanente . . . . . . . . . . . . . . . . . . 282
Corrigé 7.16 Créer une page de garde permettant d'accéder à plusieurs classeurs. . . . 282

Chapitre 8 : Feuilles de calcul


Prérequis ................................................... 283
Corrigé 8.1 Connaître le nom de la feuille active . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Corrigé 8.2 Renommer la feuille active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Corrigé 8.3 Prévenir lors du changement de feuille active
en rappelant le nom de l'ancienne feuille active . . . . . . . . . . . . . . . . . . 284
Corrigé 8.4 Effectuer un aperçu de la feuille active . . . . . . . . . . . . . . . . . . . . . . . . 284
Corrigé 8.5 Déclencher une action dès qu'une feuille est activée. . . . . . . . . . . . . . . 284
Corrigé 8.6 Déclencher une action dès qu'une cellule de la feuille active est activée . 285
Corrigé 8.7 Déclencher une action dès qu'une cellule
de la feuille active est modifiée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Corrigé 8.8 Déclencher une action dès que l'on double clique
sur une cellule de la feuille active. . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

12
Corrigé 8.9 Ajouter une nouvelle feuille de calcul. . . . . . . . . . . . . . . . . . . . . . . . . . 286
Corrigé 8.10 Supprimer une feuille de calcul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Corrigé 8.11 Copier une feuille de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Corrigé 8.12 Connaître le nombre de feuilles du classeur . . . . . . . . . . . . . . . . . . . . . 286
Corrigé 8.13 Connaître les noms de toutes les feuilles de calcul . . . . . . . . . . . . . . . . 287
Corrigé 8.14 Afficher les noms de toutes les feuilles de calcul sous forme de liste . . . . 287
Corrigé 8.15 Rechercher une feuille de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Corrigé 8.16 Protéger toutes les feuilles de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Corrigé 8.17 Déprotéger toutes les feuilles de calcul . . . . . . . . . . . . . . . . . . . . . . . . 288

Chapitre 9 : Cellules et plages


Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Corrigé 9.1 Activer une cellule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Corrigé 9.2 Connaître l'adresse de la cellule active . . . . . . . . . . . . . . . . . . . . . . . . . 290
Corrigé 9.3 Récupérer la valeur d'une cellule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Corrigé 9.4 Récupérer la formule d'une cellule . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Corrigé 9.5 Modifier le contenu d'une cellule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Corrigé 9.6 Modifier le format d'une cellule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Corrigé 9.7 Sélectionner la colonne où se trouve la cellule active . . . . . . . . . . . . . . . 291
Corrigé 9.8 Sélectionner toutes les cellules d'une feuille de calcul . . . . . . . . . . . . . . 291
Corrigé 9.9 Sélectionner toutes les cellules d'une plage définie . . . . . . . . . . . . . . . . 292
Corrigé 9.10 Sélectionner tout un tableau à partir d'une de ses cellules . . . . . . . . . . . 292
Corrigé 9.11 Sélectionner un tableau ou une liste nommée à partir de son nom . . . . . 293
Corrigé 9.12 Indiquer l'adresse de la cellule
sous la cellule active puis la sélectionner . . . . . . . . . . . . . . . . . . . . . . . 293
Corrigé 9.13 Trouver la dernière cellule contenant une valeur d'une colonne . . . . . . . . 293
Corrigé 9.14 Affecter la formule d'une cellule à une autre cellule . . . . . . . . . . . . . . . . 294
Corrigé 9.15 Affecter une formule à une cellule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Corrigé 9.16 Affecter la référence absolue d'une cellule à une autre cellule . . . . . . . . . 295
Corrigé 9.17 Affecter une valeur à une plage de cellules. . . . . . . . . . . . . . . . . . . . . . 295
Corrigé 9.18 Ajouter un commentaire à une cellule . . . . . . . . . . . . . . . . . . . . . . . . . 295
Corrigé 9.19 Remplir un tableau avec des nombres . . . . . . . . . . . . . . . . . . . . . . . . . 296
Corrigé 9.20 Afficher le nombre de colonnes, de lignes et de cellules d'une plage . . . . 296
Corrigé 9.21 Rechercher une valeur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Corrigé 9.22 Créer une série de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Corrigé 9.23 Trier une plage de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Corrigé 9.24 Copier une plage de données avec liaison aux données sources . . . . . . . 298
Corrigé 9.25 Effacer les valeurs d'une plage de données
avec demande de confirmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

13
Chapitre 10 : Graphiques
Prérequis ................................................... 301
Corrigé 10.1 Créer un graphique dans une feuille à part . . . . . . . . . . . . . . . . . . . . . 301
Corrigé 10.2 Renommer une feuille contenant un graphique . . . . . . . . . . . . . . . . . . 302
Corrigé 10.3 Déplacer une feuille contenant un graphique . . . . . . . . . . . . . . . . . . . . 302
Corrigé 10.4 Créer un graphique incorporé dans une feuille de calcul . . . . . . . . . . . . 302
Corrigé 10.5 Étendre la source de données d'un graphique incorporé . . . . . . . . . . . . 303
Corrigé 10.6 Étendre la source de données d'un graphique
implanté dans une feuille graphique . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Corrigé 10.7 Modifier la présentation d’un graphique . . . . . . . . . . . . . . . . . . . . . . . 303
Corrigé 10.8 Exporter un graphique dans un fichier image . . . . . . . . . . . . . . . . . . . . 303
Corrigé 10.9 Déclencher une action quand le graphique est sélectionné . . . . . . . . . . 304
Corrigé 10.10 Déclencher une action suite à un clic sur le graphique . . . . . . . . . . . . . 304

Chapitre 11 : Échanges de fonctions entre Excel et VBA


Prérequis ................................................... 305
Corrigé 11.1 Calculer une commission dans une feuille
de calcul Excel avec une fonction VBA . . . . . . . . . . . . . . . . . . . . . . . . 305
Corrigé 11.2 Calculer le prix HT à partir du taux de TVA
et du prix TTC avec une fonction VBA. . . . . . . . . . . . . . . . . . . . . . . . . 306
Corrigé 11.3 Calculer la valeur acquise d'un placement avec une fonction VBA . . . . . 306
Corrigé 11.4 Rechercher le minimum dans une plage de cellules
avec une fonction Excel dans du code VBA . . . . . . . . . . . . . . . . . . . . . 306
Corrigé 11.5 Générer un nombre aléatoire à partir de code VBA
utilisant une formule Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Corrigé 11.6 Calculer l'annuité constante avec Excel à partir d'une fonction VBA . . . . 307
Corrigé 11.7 Supprimer tous les espaces inutiles et redondants
d’une plage de cellules contenant du texte . . . . . . . . . . . . . . . . . . . . . 308

Chapitre 12 : Boîtes de dialogue standards


Prérequis ................................................... 309
Corrigé 12.1 Afficher un message simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Corrigé 12.2 Demander une saisie sans contrôle particulier . . . . . . . . . . . . . . . . . . . 309
Corrigé 12.3 Appeler la boîte de dialogue "Ouvrir" de Windows . . . . . . . . . . . . . . . . 310
Corrigé 12.4 Appeler la boîte de dialogue "Couleurs" de Windows. . . . . . . . . . . . . . . 310
Corrigé 12.5 Choisir des boutons pour les boîtes de dialogue . . . . . . . . . . . . . . . . . . 311
Corrigé 12.6 Déterminer le bouton par défaut parmi plusieurs boutons proposés . . . . 312

14
Corrigé 12.7 Choisir et ajouter une icône à une boîte de dialogue . . . . . . . . . . . . . . . 312
Corrigé 12.8 Contrôler la saisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Corrigé 12.9 Effectuer une action selon le choix de l'utilisateur . . . . . . . . . . . . . . . . . 313
Corrigé 12.10 Effectuer un traitement tant que l'utilisateur réalise la saisie demandée . . 313
Corrigé 12.11 Enregistrer un classeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Corrigé 12.12 Modifier la police de la feuille de calcul . . . . . . . . . . . . . . . . . . . . . . . . 314
Corrigé 12.13 Modifier la couleur d’une plage de cellules . . . . . . . . . . . . . . . . . . . . . . 314

Chapitre 13 : Formulaires
Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Corrigé 13.1 Afficher un formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Corrigé 13.2 Afficher un formulaire en mode non modal. . . . . . . . . . . . . . . . . . . . . . 317
Corrigé 13.3 Afficher un formulaire en détaillant son contenu . . . . . . . . . . . . . . . . . . 318
Corrigé 13.4 Fermer un formulaire et libérer la mémoire . . . . . . . . . . . . . . . . . . . . . 318
Corrigé 13.5 Gérer le déplacement de la souris sur le formulaire . . . . . . . . . . . . . . . . 319
Corrigé 13.6 Gérer le double clic de la souris sur le formulaire . . . . . . . . . . . . . . . . . 319
Corrigé 13.7 Afficher un formulaire à partir d'un autre formulaire . . . . . . . . . . . . . . . 319
Corrigé 13.8 Modifier le formulaire par programmation . . . . . . . . . . . . . . . . . . . . . . 319
Corrigé 13.9 Désactiver la croix de fermeture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320

Chapitre 14 : Contrôles
Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Corrigé 14.1 Ajouter des contrôles par programmation . . . . . . . . . . . . . . . . . . . . . . . 321
Corrigé 14.2 Masquer puis réafficher des contrôles . . . . . . . . . . . . . . . . . . . . . . . . . 322
Corrigé 14.3 Déplacer les contrôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Corrigé 14.4 Rendre un contrôle dépendant d'un autre. . . . . . . . . . . . . . . . . . . . . . . 323
Corrigé 14.5 Faire réagir les contrôles à la frappe clavier . . . . . . . . . . . . . . . . . . . . . 324
Corrigé 14.6 Faire réagir les contrôles à la souris. . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Corrigé 14.7 Afficher une colonne de données d'Excel
avec le titre en en-tête dans une zone de liste . . . . . . . . . . . . . . . . . . . 324
Corrigé 14.8 Afficher dans Excel une donnée sélectionnée dans une zone de liste . . . . 325
Corrigé 14.9 Reporter plusieurs lignes d’une zone de liste dans des cellules d'Excel. . . 325
Corrigé 14.10 Affecter à un tableau Excel la saisie effectuée
dans une liste déroulante modifiable . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Corrigé 14.11 Trier un tableau Excel à partir d'une liste déroulante modifiable . . . . . . . 326
Corrigé 14.12 Utiliser une liste déroulante à deux colonnes
et affecter le choix à une plage Excel . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Corrigé 14.13 Utiliser des boutons d'option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

15
Corrigé 14.14 Utiliser des cases à cocher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Corrigé 14.15 Intercepter une combinaison de touches . . . . . . . . . . . . . . . . . . . . . . . 329
Corrigé 14.16 Utiliser un bouton à bascule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Corrigé 14.17 Préparer une zone de saisie préremplie et sélectionnée . . . . . . . . . . . . . 330
Corrigé 14.18 Gérer des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330

Chapitre 15 : Ajout d’objets liés et incorporés


Prérequis ................................................... 333
Corrigé 15.1 Incorporer une image ou une photo . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Corrigé 15.2 Incorporer WordPad dans Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Corrigé 15.3 Incorporer un document Word dans Excel . . . . . . . . . . . . . . . . . . . . . . 334
Corrigé 15.4 Lier un document externe à Excel. . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Corrigé 15.5 Incorporer une vidéo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Corrigé 15.6 Lier une vidéo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Corrigé 15.7 Créer un menu pour les objets liés ou incorporés . . . . . . . . . . . . . . . . . 336

Chapitre 16 : Collaboration avec les applications Microsoft


Prérequis ................................................... 339
Corrigé 16.1 Lancer Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Corrigé 16.2 Créer un document Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Corrigé 16.3 Ouvrir un document Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Corrigé 16.4 Modifier un document Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Corrigé 16.5 Lancer Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Corrigé 16.6 Envoyer un mail avec Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Corrigé 16.7 Lancer Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Corrigé 16.8 Créer une base de données Access. . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Corrigé 16.9 Importer une table entière Access (avec QueryTables). . . . . . . . . . . . . . 343
Corrigé 16.10 Importer certains champs d'une table Access (avec ADO) . . . . . . . . . . . 344
Corrigé 16.11 Importer certains enregistrements d'une table Access . . . . . . . . . . . . . . 345
Corrigé 16.12 Importer certains enregistrements de plusieurs tables Access . . . . . . . . 345
Corrigé 16.13 Importer les enregistrements d'une base
de données en utilisant une liaison ODBC . . . . . . . . . . . . . . . . . . . . . . 346

16
Chapitre 17 : Programmation Web
Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Corrigé 17.1 Créer une page web statique à partir d'un classeur Excel . . . . . . . . . . . . 347
Corrigé 17.2 Créer une page web statique
à partir d’un classeur Excel chargé en mémoire . . . . . . . . . . . . . . . . . . 348
Corrigé 17.3 Afficher la boîte de dialogue "Publier en tant que page web". . . . . . . . . . 348
Corrigé 17.4 Publier le classeur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Corrigé 17.5 Publier une feuille du classeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Corrigé 17.6 Publier une plage de données d’une feuille du classeur . . . . . . . . . . . . . 349
Corrigé 17.7 Mettre à jour toutes les pages web . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Corrigé 17.8 Mettre à jour toutes les pages web selon certains critères . . . . . . . . . . . 350
Corrigé 17.9 Ajouter un lien hypertexte à une cellule . . . . . . . . . . . . . . . . . . . . . . . . 350

Chapitre 18 : Programmation du format XML


Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Corrigé 18.1 Sauvegarder un classeur Excel au format XML . . . . . . . . . . . . . . . . . . . 351
Corrigé 18.2 Importer des données au format XML . . . . . . . . . . . . . . . . . . . . . . . . . 352
Corrigé 18.3 Exporter des données Excel au format XML . . . . . . . . . . . . . . . . . . . . . 353
Corrigé 18.4 Ouvrir un fichier XML dans Excel 2016 . . . . . . . . . . . . . . . . . . . . . . . . 353
Corrigé 18.5 Créer un fichier GPX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Corrigé 18.6 Lire directement un fichier XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Corrigé 18.7 Effectuer une requête sur un fichier XML . . . . . . . . . . . . . . . . . . . . . . . 355

Chapitre 19 : Programmation système Windows


Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Corrigé 19.1 Générer un son bref (bip) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Corrigé 19.2 Connaître les types des unités logiques . . . . . . . . . . . . . . . . . . . . . . . . 357
Corrigé 19.3 Masquer la croix de fermeture des formulaires personnalisés . . . . . . . . . 358
Corrigé 19.4 Calculer le temps d’exécution d’une procédure . . . . . . . . . . . . . . . . . . . 360
Corrigé 19.5 Récupérer le dossier temporaire et le dossier système Windows . . . . . . . 360

17
Chapitre 20 : Matrice et tableau croisé dynamique
Prérequis ................................................... 363
Corrigé 20.1 Rechercher une information dans une plage de données . . . . . . . . . . . . 363
Corrigé 20.2 Rechercher une valeur avec doublons dans une plage de données . . . . . 363
Corrigé 20.3 Établir le chiffre d’affaires par représentant et par pays . . . . . . . . . . . . . 364
Corrigé 20.4 Créer un tableau croisé dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Corrigé 20.5 Gérer les étiquettes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Corrigé 20.6 Gérer les champs de valeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Corrigé 20.7 Mettre à jour un tableau croisé dynamique . . . . . . . . . . . . . . . . . . . . . 367

Chapitre 21 : Outil Power Query


Prérequis ................................................... 369
Corrigé 21.1 Obtenir des données à partir du Web . . . . . . . . . . . . . . . . . . . . . . . . . 369
Corrigé 21.2 Créer une requête simple sur une page web . . . . . . . . . . . . . . . . . . . . 370
Corrigé 21.3 Créer une requête avec filtre sur une page web . . . . . . . . . . . . . . . . . . 371
Corrigé 21.4 Généraliser une requête avec filtre sur une page web . . . . . . . . . . . . . . 372
Corrigé 21.5 Créer une requête Power Query sur une base Access . . . . . . . . . . . . . . 373
Énoncé 21.6 Fusionner deux requêtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377

18
Structures de contrôle
énoncé Chapitre 4

Chapitre 4
Structures de contrôle

Durée : 1 heure 55
V B A E xc e l 20 16

Mots-clés
condition, choix, test, alternative, branchement conditionnel, compteur, itération, incrémenter,
décrémenter, sortie
Objectifs
Maîtriser les structures de décision afin de tester des conditions puis effectuer des actions
différentes selon le résultat obtenu. Maîtriser les instructions d'itération qui, associées aux
instructions conditionnelles, permettent d'écrire du code Visual Basic pour la prise de décision
et la répétition des actions. Vous retrouverez ces structures dans la suite du livre. Dans ce
chapitre, nous nous limitons à l'emploi des boîtes de dialogue déjà rencontrées.

Prérequis
Pour valider les prérequis nécessaires, avant d'aborder le TP, répondez aux questions ci-après
(certaines questions peuvent nécessiter plusieurs réponses) :

1. Les structures suivantes sont des structures de décision :


a. If ... Then ... Else ... End If
b. Do ... Loop
c. Select Case ... Case ... End Select
2. Résultat = IIf(7 / 2 > 3, IIf(2.8 * 3.3 < 11, "X", "Y"), "Z")
La variable Résultat contient la valeur :
a. X
b. Y
c. Z

65
VBA Excel 2016 - Créez des applications professionnelles
Les TP Informatiques

3. Les instructions suivantes appartenant chacune à une structure de contrôle différente


sont correctes :
a. Case If N1 > N2
b. Case A, B, C
c. Case 1 to 10
d. Case Nombre, Is > 50
4. Le mot-clé ElseIf :
a. peut apparaître de suite après une clause Else.
b. est facultatif.
c. peut être utilisé plusieurs fois dans un bloc If.
5. Répétition d'instructions tant qu'une condition a la valeur True :
a. For Each ... Next
b. For ... Next
c. Do ... Loop
d. While ... Wend
e. With ... End With
6. Utilisation d'un compteur pour exécuter des instructions un certain nombre de fois :
a. For Each ... Next
b. For ... Next
c. Do ... Loop
d. While ... Wend
e. With ... End With
7. Répéter un groupe d'instructions pour chaque élément d'un tableau ou d'une collection :
a. For Each ... Next
b. For ... Next
c. Do ... Loop
d. While ... Wend
e. With ... End With

66
Structures de contrôle
énoncé Chapitre 4

8. Répéter un groupe d'instructions le nombre de fois indiqué :


a. For Each ... Next
b. For ... Next
c. Do ... Loop
d. While ... Wend
e. With ... End With
9. Exécuter une série d'instructions appliquées à un seul objet ou à un type défini par l'utili-
sateur :
a. For Each ... Next
b. For ... Next
c. Do ... Loop
d. While ... Wend
e. With ... End With

Corrigé p. 249

Énoncé 4.1 Vérifier que la saisie est numérique


Exercice 1
Durée estimative : 10 minutes
Créez la procédure ContrôleSaisie qui propose une boîte de saisie et vérifiez qu'il s'agit d'un
nombre. Si c'est le cas, effectuez l'opération qui consiste à multiplier le nombre par lui-même,
sinon affichez un message. Exemple :

67
VBA Excel 2016 - Créez des applications professionnelles
Les TP Informatiques

Indice
Utilisez la fonction IsNumeric pour tester la saisie.

Exercice 2
Durée estimative : 5 minutes
Complétez la procédure précédente qui vérifie que l'utilisateur a cliqué sur le bouton OK. Dans
le cas contraire, affichez un message. Exemple :

Corrigé p. 249

Énoncé 4.2 Dire au revoir


Durée estimative : 5 minutes
Complétez la procédure AuRevoir. Celle-ci propose une boîte de dialogue demandant si l’on
souhaite quitter Excel. Elle affiche le message "A bientôt" si l'utilisateur clique sur le bouton Oui,
et le message "Poursuivons" sinon. Exemple :

68
Structures de contrôle
énoncé Chapitre 4

Sub AuRevoir()
Dim strMessage As String
Dim intStyle As Integer
Dim intChoix As Integer
strMessage = "Souhaitez-vous quitter Excel ?"
intStyle = vbYesNo + vbDefaultButton2
... = MsgBox(strMessage, intStyle)
If ... = vbYes Then
MsgBox "A bientôt."
...
MsgBox "Poursuivons."
...
End Sub

Indice
Voici un extrait de l'aide VBA en ligne :

Corrigé p. 250

69
VBA Excel 2016 - Créez des applications professionnelles
Les TP Informatiques

Énoncé 4.3 Contrôler la saisie d'une consonne ou voyelle


Durée estimative : 10 minutes
Créez la procédure ConsonneVoyelle qui demande de saisir une voyelle ou une consonne.
Affichez un message selon la saisie : "Voyelle", "Consonne" ou un message approprié en cas
d'erreur. Exemple :

Indice
Pour tester la lettre en majuscule, on effectuera la transformation suivante :

varChoix = [Link](varChoix)

Corrigé p. 250

Énoncé 4.4 Afficher un message selon l'âge et le genre


Durée estimative : 15 minutes
Créez la procédure VotreAge qui demande le sexe et l'âge de l’utilisateur. Les messages seront
différents selon qu'il s'agisse d'un homme ou d'une femme. Prenez également en considération
l'abandon de la saisie et la saisie de lettres pour l'âge.
0 - 17 ans : Gamin
18 - 30 ans : Vous êtes jeune
31 - 50 ans : Vous êtes encore jeune
> 50 ans : Vous commencez à vieillir
70

Vous aimerez peut-être aussi