Présentation
Les origines du jeu Yahtzee vous sont données sur les sites de Vikipedia et de Jouetopia.
Vous pouvez donc vous informer au mieux et y lire les règles de ce jeu avec leurs différentes options.
Notre propos est de créer une application de ce jeu sur Windows avec Excel VBA.
L'intérêt premier sera de vous faire découvrir la programmation en Visual Basic et la démystifier.
L'image en haut de page, vous donne un aperçu de ce jeu.
Dans notre exemple, il est prévu pour jouer :
- soit seul
- soit avec 3 joueurs
- soit contre l'ordinateur
Truc :
Au début des lignes de commandes, les numéros correspondent à ceux présents dans les copies d'écrans.
Commençons par la réalisation des "Dés"
1 - Ouvrez Excel et choisissez le premier modèle vierge.
Dans la barre de Menus, il faut que le menu "Développeur" soit présent.
Si ce n'est pas le cas :
2 - Déroulez le menu "Fichier" --> "Options".
3 - Dans la colonne de gauche, cliquez sur "Personnaliser le ruban"
4 - Dans la colonne de droite qui apparaît, mettez la coche au menu "Développeur"
Cela permet donc d'avoir le menu "Développeur" dans la "Barre de Menus" comme ci-dessous, fig exc0007
5 - Cliquez sur le menu "Développeur" pour obtenir le ruban correspondant.
6 - Cliquez sur le bouton "Enregistrer une macro"
Cela vous ouvre la petite boîte de dialogue fig exc0008
Vous pouvez y changer le nom proposé, en mettant "Test01" par exemple.
7 - Cliquez sur le bouton "Ok"
Après disparition de la boîte de dialogue "exc0008", vous pouvez alors travailler sur la feuille1 d'Excel.
8 - Tapez le chiffre 15 dans la cellule A1, et validez.
Le rectangle de sélection descend aussitôt dans la cellule A2.
9 - Cliquez maintenant sur le bouton "Arrêter l'enregistrement"
Visualiser la macro :
10 - Dans le ruban, cliquez sur l'icône "Visual Basic" pour ouvrir la page correspondante, fig exc0010
--> Si besoin, faites un double-clic à gauche, sur "Module1"
Votre macro apparaît dans la partie droite, et montre bien ce que vous avez fait :
- sélectionné la cellule ("A1")
- donné la valeur "15" à cette cellule
- déplacé la sélection en "A2" quand vous avez validé votre saisie.
Bon c'est en anglais, mais c'est assez simple à comprendre.
Essayons de traduire, mais vous ne le ferez pas par la suite:
- range --> cellule
- ActiveCell --> cellule active
2ème test :
11 - Effacez la valeur et les guillemets "15"
12 - A la place tapez directement le chiffre 1 sans les guillemets
13 - Cliquez sur la petite flèche verte dans la barre d'outils
Dans la bulle qui s'affiche au passage de la souris sur ce bouton, vous avez la définition de l'usage de ce bouton "Exécuter Sub/Userform" et le raccourci clavier "F5" que vous pourriez utiliser à la place de la souris.
Une fois que vous aurez cliqué sur ce bouton, vous pouvez regarder dans la Feuil1 de votre classeur et constater que la valeur 1 s'est bien inscrite dans la cellule "A1".
Préparation cellule "A1" pour le jeu de Yahtzee
A partir de maintenant, on désignera par "classeur" notre page Feuil1 d'Excel et par "VBA" la page Visual Basic.
Pour la commodité, si votre écran est assez grand, vous pouvez placer vos feuilles par moitiés d'écran. Il vous suffit de cliquer à l'intérieur de votre classeur, puis de taper le raccourci clavier "Windows + Flèche à Gauche", et ensuite de faire un simple clic sur la page VBA.
Autre aménagement pratique : dans VBA, vous pouvez aussi utiliser le menu "Outils - Options" pour faire vos réglages de type et grosseur de caractères des macros.
Reprenons notre travail en cours :
Revenez dans le classeur et cliquez sur le bouton "Enregistrer une Macro"
Dans la boîte suivante, cliquez simplement sur le bouton "OK"
14 - Sélectionnez la cellule "A1" et cliquez ensuite sur le bouton "fx"
15 - Choisissez "Tous" pour la catégorie
16 - Faites un double-clic sur "ALEA.ENTRE.BORNES"
17 - Marquez les valeurs 1 pour la plus petite valeur d'un Dé, et 6 pour la plus grande valeur d'un Dé, puis validez
Le résultat se retrouve en A1 qui affiche un nombre entre 1 et 6
Vous avez la formule reprise dans la "Barre de formule"
Petit exercice : tapez sur la touche de fonction "F9", et vous verrez la valeur de la cellule A1 changer entre 1 et 6.
Et pour les 5 Dés:
18 - Réaffichez votre page VBA
On va s'appuyer sur nos 2 premiers enregistrement de macros, pour en créer une autre de toutes pièces.
18 - Commencez à taper cette ligne, avec le mot "sub" en minuscule, l'espace, puis "TousLesDes" sans les parenthèses à la fin. Puis, Validez !
L'ordinateur corrigera tout seul, en mettant la majuscule à "Sub", en ajoutant les (), puis il sautera une ligne et marquera automatiquement la ligne 19 : "End Sub"
Sub TousLesDes() ' Boucle for (Cette ligne est en commentaire) End Sub |
20 - Mettez une apostrophe devant le renseignement de ce que va faire cette macro. Cette ligne est un "commentaire"
21 - Sous forme de commentaire j'ai repris le mode de sélection de la cellule "A1"
22 - On sélectionne cette même cellule, mais sous la forme "Numéro de ligne, numéro de colonne (dite forme L1C1)"
23 - On crée une boucle. Traduisons : Pour n = 0 jusqu'à ce que n = 4
Ici, j'ai pris la lettre n au hasard, j'aurais pu prendre le i, le j, n'importe quelle lettre ou mot qui désignera donc un compteur.
Attention, l'éxécution commence tout de suite, donc de 0 à 4, cela fera 5 fois.
24 - On va poser la formule "RANDBETWEEN" en partant de la cellule active, et en se décallant de 0 ligne, mais
de 0 colonne la première fois
de 1 colonne la deuxième fois
etc.
25 - Next n indique à la macro de recommencer (boucler) à la ligne 23 jusqu'à ce que n = 4.
Exécution :
Revenez à votre feuille d'Excel
26 - Cliquez sur le bouton "Macros"
27 - Sélectionnez votre macro "TousLesDes"
28 - Cliquez sur le bouton "Exécuter"
Vous obtenez le résultat suivant dans votre feuille :
Si, à nouveau, vous tapez sur la touche de fonction "F9",vous verrez vos 5 chiffres se modifier, mais toujours avec des valeurs comprises entre 1 et 6.
Conclusions :
Dans cette page, vous avez pu faire une première approche de la programmation en VBA pour Excel.
C'est toute la force de cette application qui vous permet de faire des essais, quand vous désirez apprendre un truc nouveau, et de découvrir ainsi les formules qui sont nécessaires à votre réalisation.
Les 5 chiffres ci-dessus vous donnent la base pour lancer les "dés" au hasard !
Dans la prochaine page, nous verrons comment créer, par programmation, les images de ces dés.
Gaby Rambault