Vous êtes sur la page 1sur 20

Exercices

VBA Excel

MERCI DE LAISSER CE LIVRET


DANS LA SALLE.

Exercices VBA Excel

Dcembre 2001

Fonctions ............................................................................................................... 3

Age (1) ......................................................................................................................................4


Franc Euro.................................................................................................................................5
Facture ......................................................................................................................................6
Age (2) ......................................................................................................................................8

Macros ................................................................................................................... 9

Tableau (1) ..............................................................................................................................10


Tableau (2) ..............................................................................................................................11
Visites .....................................................................................................................................12
Changer la casse......................................................................................................................14
Calendrier................................................................................................................................15
Onglets (1) ..............................................................................................................................17
Onglets (2) ..............................................................................................................................18

Page 2 sur 20

Laurent DUPRAT

FONCTIONS

Exercices VBA Excel

Fonctions

Dcembre 2001

Age (1)
Objectif :

Crer une fonction de calcul

30 min

Laurent DUPRAT

Consignes de ralisation :

Crer le tableau ci-dessous

Crer une fonction age qui renvoie lge par rapport la date saisie avec un format
personnalis (ans ou an en fonction du nombre dannes).

Utiliser cette fonction dans les cellules B2 et B3.

Enregistrer le fichier sous le nom Age.

Remarques :
Le calcul par fonctions serait :

=ENT((MAINTENANT()-ma_date)/365,25)

Le code VBA pour formater un calcul est :

Format()

Page 4 sur 20

Laurent DUPRAT

Dcembre 2001

Fonctions

Exercices VBA Excel

Franc Euro
Objectif :
Crer une fonction de calcul

30 min

Laurent DUPRAT

Consignes de ralisation :

Crer le tableau ci-dessous

Crer une fonction FrancEuro(montant;code) qui permet de renvoyer le montant dans la


devise souhaite en fonction dun code saisi par lutilisateur (par exemple, 1 pour
transformation des Francs en Euros, 2 pour transformation des Euros en Francs).
Prvoir un message derreur lorsque lutilisateur ne saisit pas le bon code permettant la
transformation du montant dsir.

Utiliser cette fonction dans les cellules B2 et A3 avec les bons paramtres.

Tester, dans une autre cellule, la fonction avec un mauvais code.

Enregistrer le fichier sous le nom FrancEuro.

Laurent DUPRAT

Page 5 sur 20

Exercices VBA Excel

Fonctions

Dcembre 2001

Facture
Objectif :
Crer une fonction de calcul

30 min

Laurent DUPRAT

Consignes de ralisation :

Ouvrir le fichier Facture.xls.

Page 6 sur 20

Laurent DUPRAT

Dcembre 2001

Fonctions

Exercices VBA Excel

Crer une fonction MonTaux qui renvoie le taux correspondant au montant du brut :
Brut :
Jusqu 2 000 F (exclus)
De 2 000 F 4 000 F (exclus)
De 4 000 F 6 000 F (exclus)
De 6 000 F 8 000 F (exclus)
De 8 000 F 10 000 F (exclus)
De 10 000 F 12 000 F (exclus)
De 12 000 F 14 000 F (exclus)
De 14 000 F 16 000 F (exclus)
De 16 000 F 18 000 F (exclus)
De 18 000 F 20 000 F (exclus)
A partir de 20 000 F

Utiliser cette fonction dans la cellule D19.

Effectuer des tests.

Enregistrer le fichier.

Laurent DUPRAT

Taux :
Pas de remise
1%
2%
3%
4%
5%
6%
7%
8%
9%
10 %

Page 7 sur 20

Exercices VBA Excel

Fonctions

Dcembre 2001

Age (2)
Objectif :

Gnraliser une fonction de calcul

30 min

Laurent DUPRAT

Consignes de ralisation :

Ouvrir le classeur Age contenant la fonction age.

Enregistrer ce classeur comme Macro complmentaire Microsoft Excel.

Activer la macro complmentaire Age dans Outils Macros complmentaires

Fermer le classeur Age.

Dans un nouveau classeur, tester la fonction age en passant par lAssistant Fonction

Un fois le test effectu, dsactiver la macro complmentaire et supprimer le fichier dans le


dossier des Macros complmentaires

Page 8 sur 20

Laurent DUPRAT

MACROS

Exercices VBA Excel

Macros

Dcembre 2001

Tableau (1)
Objectif :

Crer une macro

20 min

Laurent DUPRAT

Consignes de ralisation :
Nous allons enregistrer une macro permettant de raliser ce tableau :

Enregistrer la macro TableauAuto qui permet de tracer un petit tableau :


Slectionner les 6 premires cellules (de A1 A6)
Faire le contour
Slectionner la premire cellule (A1)
Faire la bordure du bas
Remplir avec une couleur
Autoriser un retour la ligne, centrer le contenu horizontalement et verticalement.
Slectionner toutes les cellules constituant le tableau final (de A1 D6)
Recopier vers la droite (menu dition)
Slectionner la premire cellule (A1)

Remarque : cette macro devra raliser ce petit tableau partir de la cellule active (celle
slectionne par lutilisateur).

Afficher le code de la macro TableauAuto et supprimer le code inutile.

Remarque : si vous ntes pas sr, vous pouvez saisir un apostrophe devant la ligne dun code
plutt que de la supprimer. Celle-ci est transforme en commentaire et nest donc plus
excute.

Tester la macro dans une cellule quelconque.

Enregistrer le fichier sous le nom TableauAuto.

Page 10 sur 20

Laurent DUPRAT

Dcembre 2001

Macros

Exercices VBA Excel

Tableau (2)
Objectif :
Modifier une macro

20 min

Laurent DUPRAT

Consignes de ralisation :
Nous allons modifier la macro TableauAuto pour que lutilisateur puisse indiquer le nombre
de colonnes et de lignes dsirs dans des botes de saisie.

Lutilisateur sera inform de la cration du tableau par cette bote :

Remarques :
Pour demander lutilisateur de saisir une information, utiliser le code VBA inputbox
Pour afficher une information, utiliser le code VBA msgbox
Pour slectionner une plage de cellules, utiliser le code VBA range(Cellule1,Cellule2).select
avec sa proprit Offset pour se dplacer de x lignes et y colonnes.

Laurent DUPRAT

Page 11 sur 20

Exercices VBA Excel

Macros

Dcembre 2001

Visites
Objectif :
Crer une macro permettant de modifier un graphique

30 min

Laurent DUPRAT

Consignes de ralisation :
Chaque jour, le Directeur dun office de tourisme souhaite comptabiliser en temps rel et par
pays dorigine, le nombre de personnes venant chercher des informations.

Un clic sur le bouton dun pays augmentera la valeur des visites (stocke dans la cellule du
dessus).

Prparer la feuille : partir des donnes saisies, raliser le graphique en histogramme


(personnaliser chaque barre avec limage souhaite).

Enregistrer la macro Init qui permet deffacer le contenu des cellules servant raliser le
graphique.

Page 12 sur 20

Laurent DUPRAT

Dcembre 2001

Macros

Exercices VBA Excel

Crer la macro Compteur1 qui slectionne la cellule contenant les visites de la France et
qui ajoute 1 sa valeur

Dupliquer la macro Compteur1 et modifier les paramtres voulus pour chaque pays.

Crer un bouton par pays

Affecter chaque bouton, la macro correspondante (utiliser la barre doutils Formulaires).

Enregistrer le fichier sous le nom Visites.

Laurent DUPRAT

Page 13 sur 20

Exercices VBA Excel

Macros

Dcembre 2001

Changer la casse
Objectif :
Crer une macro

30 min

Laurent DUPRAT

Consignes de ralisation :
Saisir les informations ci-dessous :

Crer la macro MinToMaj qui permet de mettre en majuscules le contenu de chaque


cellule slectionne.
(pour cela, il faut compter le nombre de cellules dans la slection puis, avec une boucle,
changer la casse, cellule par cellule)
Remarque : pour transformer des minuscules en majuscules, utiliser la fonction UCase

Dupliquer la macro prcdente pour crer la macro MajToMin qui permet de mettre en
minuscules le contenu de chaque cellule slectionne.
Remarque : pour transformer des majuscules en minuscules, utiliser la fonction LCase

Tester les deux macros sur des slections diffrentes.

Enregistrer le classeur sous le nom Casse.

Page 14 sur 20

Laurent DUPRAT

Dcembre 2001

Macros

Exercices VBA Excel

Calendrier
Objectif :
Crer une macro

1 heure

Laurent DUPRAT

Consignes de ralisation :

Ouvrir le fichier Calendrier :

Pour mettre jour ce calendrier, il suffit de saisir la premire date voulue dans la cellule A1.

Remplacer la date actuelle par 01/01/01.


Le calendrier ce met jour.
Seule la mise en forme ne change pas (cellules transparentes ou grises).

Enregistrer une macro Gris qui grise les deux cellules cte cte partir de la cellule
active puis qui passe la cellule du dessous.

Enregistrer une macro Transparent qui rend les deux cellules cte cte transparentes
partir de la cellule active puis qui passe la cellule du dessous.

Cliquer dans une cellule contenant une date (par exemple A4) puis excuter la macro
souhaite (Transparent ou Gris) en fonction de la date.

Laurent DUPRAT

Page 15 sur 20

Exercices VBA Excel

Macros

Dcembre 2001

Crer la macro MiseEnForme qui excute lune des macros existantes (Transparent ou
Gris) en fonction de la date pour une colonne entire (un mois).

Tester la macro sur plusieurs colonnes.


Modifier ventuellement la macro pour quelle fonctionne dans tous les cas.

Remarques :
Vous devez griser les cellules lorsquil ny a pas de date.
Vous trouverez lquivalent de la fonction Excel JOURSEM en code VBA.

Modifier la macro prcdente pour quelle mette en forme lensemble du planning (les
douze mois).

Remarque : la macro sexcutera toujours partir de la cellule A4 et reviendra en cellule B4.

Tester la macro.

Protger la feuille
Prparer la protection :
Dverrouiller les cellules dans lesquelles lutilisateur pourra saisir des informations (par
exemple, A1, B4:B34, ...)
Masquer les cellules contenant les formules de calcul pour quelles napparaissent pas
dans la barre de formule.
Protger la feuille.

Tester la macro.
Celle-ci ne peut pas sexcuter du fait de la protection.

Modifier la macro.

Tester la macro.

Page 16 sur 20

Laurent DUPRAT

Dcembre 2001

Macros

Exercices VBA Excel

Onglets (1)

Objectif :
Crer une macro

30 min

Laurent DUPRAT

Consignes de ralisation :

Crer une macro qui permet dattribuer chacune des feuilles dun classeur le nom du
dpartement saisi dans la cellule B1 de chaque feuille.

Feuil1
Feuil2
Feuil3

Enregistrer le classeur sous le nom NomFeuilles.

Laurent DUPRAT

Page 17 sur 20

Exercices VBA Excel

Macros

Dcembre 2001

Onglets (2)
Objectif :
Crer une macro

30 min

Laurent DUPRAT

Consignes de ralisation

Crer une macro qui permet de trier automatiquement les feuilles du classeur
NomFeuilles par ordre alphabtique.

Page 18 sur 20

Laurent DUPRAT

Fin des exercices

Vous aimerez peut-être aussi