Informatique - DEGEAD 2 Universit´e Paris-Dauphine
TD 2 - Programmation en VBA
Exercice 1 : Type Date et entr´ees-sorties
Q 1.1Ecrivez une macro qui affiche la date du jour dans une boˆıte de dialogue. Pour cela, vous utiliserez la fonctionDate de VBA qui retourne la date syst`eme en cours de type Date.
Q 1.2Ecrivez une macro qui affiche la date du jour dans une boˆıte de dialogue et demande `a l’utilisateur si cette date correspond `a son anniversaire. Pour cela, utilisez les boutons de MsgBox. Si l’utilisateur r´epond oui, alors la macro demande son ann´ee de naissance `a l’utilisateur puis affiche le message
Aujourd’hui, vous avez X ans, bon anniversaire !. Vous pouvez utiliser pour cela la fonctionYear qui prend un type Date en param`etre et retourne l’ann´ee de la date pass´ee en param`etre.
Q 1.3 Ecrivez la proc´edure age qui prend une date (de naissance) en param`etre et affiche l’ˆage de la personne ayant cette date de naissance dans une boˆıte de dialogue. Pour cela, vous pouvez aussi utiliser les fonctionsMonth etDay.
La macrotest age est un exemple d’appel de votre proc´edure avec la date de naissance 21/09/1974.
Sub t e s t a g e ( )
a g e #9/21/1974#
End Sub
Exercice 2 : Plage de nombres
On d´esire ´ecrire les entiers de 1 `a 10 000 dans une plage ayant 100 lignes et 100 colonnes de sorte que la premi`ere ligne contienne les entiers de 1 `a 100, la deuxi`eme ligne contienne les entiers de 101 `a 200, etc.
Q 2.1 Ecrire une proc´edure qui remplit la plage L1C1 :L100C100 avec les entiers de 1 `a 10 000, en calculant la valeur de chaque cellule.
Q 2.2On se place maintenant sur la feuille de calcul Excel. Indiquer les formules `a ins´erer dans la feuille de calcul Excel pour remplir la plage L1C1 :L100C100 avec les entiers de 1 `a 10 000 en ne saisissant au clavier qu’une seule valeur : l’entier 1 de la cellule L1C1.
Q 2.3Ecrire une proc´edure VBA qui remplit la plage L1C1 :L100C100 avec les entiers de 1 `a 10 000, en calculant la valeur de chaque cellule au moyen d’une formule.
Exercice 3 : Entr´ees-Sorties
Q 3.1Ecrivez une proc´edure qui demande un nombre `a l’utilisateur, puis qui calcule et affiche le carr´e de ce nombre. Cette proc´edure doit faire en sorte que la valeur saisie par l’utilisateur soit bien un nombre (et non une chaˆıne de caract`eres par exemple). Utilisez les m´ethodes Application.InputBoxetMsgBox.
Q 3.2On suppose que la colonne 1 de la feuille Excel contient deux mots de passe : un sur la premi`ere ligne et l’autre sur la seconde. Ecrivez une proc´edure qui demande un mot de passe `a l’utilisateur et v´erifie que le mot de passe saisi par l’utilisateur corresponde `a l’un des deux mots contenus dans la feuille
Informatique - DEGEAD 2 page 2 Excel. Tant que ce n’est pas le cas, la proc´edure demande un nouveau mot de passe `a l’utilisateur.
Q 3.3 Modifiez la proc´edure pr´ec´edente pour qu’elle demande au maximum trois fois un mot de passe `a l’utilisateur. Si au bout de trois essais l’utilisateur n’a pas saisi le mot de passe, la proc´edure affiche le message Vous ne connaissez pas le mot de passe, au revoir !