excel macro - GRAppA

Nous allons réaliser un jeu de 421 en Excel. L'instruction rnd() permet de
générer un nombre aléatoire entre 0 et 1 non inclus (ainsi le code x = rnd() place
une ...

Part of the document


EXCEL MACRO
1 premières macros
1 l'enregistreur
Réalisez et testez les macros suivantes :
1. grasbleuC3_E5 : met en gras et en gras la zone comprise entre C3 et
E5.
2. GrasBleu : met en gras et en bleu la zone sélectionnée. 3. Cherche : recherche dans une feuille l'élément appelé « truc »
(indice : allez voir dans Edition\Rechercher) 4. AjouteFeuille : ajoute une nouvelle feuille au classeur
2 graphique
Faites en sorte que CTRL+MAJ+C permette de construire un graphique en
camembert sur une nouvelle feuille à partir des données de la zone A1:E2 3 navigation Ajoutez des boutons en haut de chaque feuille pour revenir automatiquement
à la feuille 1. 2 modification de macro
1 Valeur 1. Réalisez une macro valeur qui attribue à la cellule courante la valeur
20
2. Modifiez son code : attribuez maintenant à une variable val la valeur
20 (val = 20) et utilisez maintenant la valeur de val pour changer la
valeur de la cellule (activecell.value = val). Testez
3. Plutôt que de mettre systématiquement 20 comme valeur, demandez à
l'utilisateur la valeur à indiquer dans la cellule (par une inputbox).
Testez.
4. En plus de mettre la valeur dans la cellule, affichez la dans une
boîte de dialogue (MsgBox)
2 Carré Réalisez une macro que vous appellerez carré qui demande un chiffre à
l'utilisateur et qui affiche ensuite dans une boite de dialogue le carré de
ce chiffre. 3 Cherche
A l'aide de votre macro cherche (voir l'exercice 1), réalisez une macro qui
demande à l'utilisateur un mot à chercher sur la feuille, et qui recherche
ce mot. Affectez cette macro à un bouton de la barre d'outil.
4 Création de feuilles
Réalisez une macro qui crée un nouveau classeur, donne pour nom à la
première feuille « Exercice 2 », efface les feuilles 2 et 3 et enregistre
la feuille sous un nom demandé à l'utilisateur. 3 écriture de macro
1 Observation
Observez la macro suivante : sub test_var()
x = activecell.value
y = x * 2
y = y - 1
range("A1 ").value = y
z = Cells(1,1).value
activecell.value = z - 2
Cells(x,y).select
Activecell.clear
end sub A votre avis, que se passe-t'il si :
on exécute cette macro en B2, B2 contenant la valeur 3
on exécute cette macro en A1, A1 contenant la valeur 2
on exécute cette macro en A3, A3 contenant la valeur 1 Après avoir répondu aux questions, recopiez cette macro dans Excel et
testez. 2 Premières macros Réalisez les macros suivantes : 1. Ecrire dans Visual Basic Editor une macro qui place la valeur 30 dans
la cellule active 2. Réalisez une macro qui place la valeur de la cellule active dans une
variable et qui affiche cette valeur dans une boîte de dialogue 3. Réalisez une macro qui place le contenu de la cellule A1 dans une
variable, puis dans la cellule B2 et qui l'affiche ensuite avec une
boite de dialogue 4. Réalisez une macro qui échange la valeur de la cellule A1 et de la
cellule active et qui finit par sélectionner la cellule A1. 5. Réalisez une macro qui multiplie par deux la valeur de la cellule
courante 6. Réalisez une macro qui met en A1 la valeur de la cellule courante si
celle-ci est supérieure à la valeur contenue dans la cellule A1 avant
de lancer la macro 7. Concevez une macro qui écrit en A3 la valeur la plus grande parmi
celles de A1 et A2 8. Réalisez une macro qui ajoute 1 à la cellule A1 si la cellule courante
a une valeur supérieure à 10, et ajoute 1 à la cellule A2 si celle-ci
est inférieure à 10. 3 Jeu de 421
Nous allons réaliser un jeu de 421 en Excel. L'instruction rnd() permet de générer un nombre aléatoire entre 0 et 1 non
inclus (ainsi le code x = rnd() place une valeur aléatoire dans la variable
x). Si on met x = rnd() * 6, on a ainsi un nombre compris entre 0 et 5. Le
code x = int(rnd()*6) +1 permet donc de placer dans la variable x une
valeur comprise entre 1 et 6 1. Réalisez des macro lancer_de1(), lancer_de2() et lancer_de3() qui
placent respectivement en B1, B2 et B3 des valeurs aléatoires
comprises entre 1 et 6. Associez ces macro à des boutons à côté des
cellules correspondantes. Testez.
2. Réalisez une macro tester_4() qui vérifie si l'une des cellules B1, B2
ou B3 contient la valeur 4. Si c'est le cas, indiquer dans la cellule
B4 la mention 'gagné' et 'perdu' sinon. 3. Réalisez une macro tester_421() qui vérifie si les cellules B1, B2 et
B3 contiennent un 4 2 1 (dans un ordre quelconque). Si c'est le cas,
indiquer dans la cellule B4 la mention 'gagné' et 'perdu' sinon. 4. Modifiez les macro lancer_1(), lancer_2() et lancer_3() pour qu'elles
appellent la macro 'tester_421' à chaque lancer de dé. 5. Modifiez votre programme pour que :
- la cellule B4 contient le nombre d'essais,
- vous ayez un bouton 'début' qui lance les trois dés et met '1'
dans la cellule B4,
- à chaque lancer de dé, la valeur contenue dans la cellule B4
s'incrémente (on lui ajoute 1). 4 Le nombre mystère
Réalisez un jeu de nombre mystère. Le jeu du nombre mystère fonctionne de
la manière suivante :
- l'ordinateur choisit aléatoirement une valeur entre 1 et 100. Le
joueur doit deviner cette valeur. A chaque essai, l'utilisateur
propose un nombre et la machine lui répond par 'trop grand',
'trop petit' ou 'gagné'
- Le jeu aura l'apparence suivante :
[pic]
- le bouton 'début' initialise le jeu : une valeur aléatoire est
placé dans une cellule (par exemple C3) et le nombre d'essai est
placé à 0. La valeur à deviner sera caché en mettant une couleur
de police égale à celle du fond (ici bleu)
- le bouton tester augmente le nombre d'essais et indique par une
msgbox un message ('trop grand', 'trop petit' ou 'gagné').
5 Correction automatique
1) Réalisez une macro qui demande un nombre d'élèves à l'utilisateur et qui
trace automatiquement un tableau de la forme : |Nom |Prénom |Note |
| | | |
| | | |
| | | |
| |Moyenne | | La cellule à droite de moyenne doit contenir la moyenne des notes qui
seront présentes dans la colonne Note. 2) Modifiez votre macro pour qu'elle remplisse maintenant une quatrième
colonne « mention » qui contiendra la mention correspondante à la note
(rejet/passable/assez bien/bien/excellent)
4 Parcours de liste
Pour se déplacer dans le tableau, on dispose d'une méthode très utile : la
méthode offset. Celle-ci permet de repérer une cellule à partir d'une
autre. La syntaxe est la suivante :
(cellule de départ).offset(décalage en y, décalage en x) Par exemple, la cellule range("A1").offset(1,2) est en réalité la cellule
B3 (une case à droite et 2 cases à gauche de A1). De même,
activecell.offset(-1,0) est la cellule à gauche de la cellule active. 1 Observation Chargez le fichier liste.xls. que fera la macro suivante ? Testez et
vérifiez Sub test()
Range("A1").select
Do while (activecell.value "")
Activecell.font.bold = true
Activecell.offset(0,1).select
Loop
End sub 2 Recherche
Pour les questions suivantes, vous pourrez utiliser le fichier liste.xls
1. Réalisez une macro qui demande à l'utilisateur un nom, et qui cherche
ensuite ce nom dans la première colonne. La recherche s'arrête quand
la liste s'arrête (dès qu'il y a un blanc). 2. Idem, mais l'utilisateur entre un nom de un prénom. La recherche ne
s'arrête que s'il elle trouve la bonne personne (avec le bon nom et le
bon prénom), ou à la fin de la liste, auquel cas un message d'erreur
doit s'afficher. 3. Réalisez une macro qui écrit sur la deuxième feuille les informations
concernant la personne recherchée.
4. Réalisez une macro qui extrait sur la deuxième feuille la liste des
personnes dont le prénom commence par une lettre demandée à
l'utilisateur (indice : voir la fonction InStr)