Cisa


Club Informatique Saint-Avertinois

Jouer au Yahtzee

VBA pour Excel



Présentation

Présntation du jeu de Yahtzee

Logo WikipediaLogo JouétopiaLes 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 :

Commençons par la réalisation des "Dés"

1 - Ouvrez Excel et choisissez le premier modèle vierge.

Nouveau fichier

Dans la barre de Menus, il faut que le menu "Développeur" soit présent.

Menu développeur

Si ce n'est pas le cas :

2 - Déroulez le menu "Fichier" --> "Options".

Boîte de dialogue 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

Barre de menus

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

exc0008

Vous pouvez y changer le nom proposé, en mettant "Test01" par exemple.

7 - Cliquez sur le bouton "Ok"

exc0009

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

Visual Basic Test01

Votre macro apparaît dans la partie droite, et montre bien ce que vous avez fait :

Bon c'est en anglais, mais c'est assez simple à comprendre.
Essayons de traduire, mais vous ne le ferez pas par la suite:

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

Bouton Exécuter  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 "Ctrl + Flèche à Gauche", et ensuite de faire un simple clic sur la page VBA.

Organisation de l'écran

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.

Menu Outils-Options dans VBA

Réglages des caractères

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"

Nouvelle macro2

14 - Sélectionnez la cellule "A1" et cliquez ensuite sur le bouton "fx"

Fonction

15 - Choisissez "Tous" pour la catégorie

16 - Faites un double-clic sur "ALEA.ENTRE.BORNES"

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

Résultat en A1

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éafichez votre page VBA

TousLesDés

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)
' Range("A1").Select
    Cells(1, 1).Select
        For n = 0 To 4
    ActiveCell.Offset(0, n) = "=RANDBETWEEN(1,6)"
        Next n

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"

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 donc 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

Macros exécuter

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 :

Résultat de la mamcro

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, quand vous désirez apprendre un truc nouveau, de vous permettre de faire des essais 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.

Page suivante


Gaby Rambault