mastermind sur excel

  • Initiateur de la discussion Initiateur de la discussion Loison
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Loison

XLDnaute Nouveau
Bonjour, je dois réaliser un jeu pour les cours , j'ai décidé de faire un mastermind sur excel , je l'ai réalisé mais je bloque sur quelque chose. Je voudrais établir un record a battre pour les joueurs. Le record se baserait sur le nombre de coups réalisé pour trouver la solution celui ayant fait le moins de coup a le record. Le problème est que je n'arrive pas a garder le record indéfiniment il s'efface a chaque partie que je fais. Je sais qu'il faudrait faire une macro pour cela mais je n'y arrive pas.
Merci de votre réponse.
 
Bonjour

Si cela doit être conservé le temps d'une session Excel, on peut stocker les infos de la partie dans un tableau (array) static ou, comme dans le cas, où cela doit être conserver sur plusieurs sessions, dans un tableau d'une feuille masquée.
 
Re et bonjour chris,

toujours pas pu ouvrir, mais:

si le résultat est en B2 et le record en B3, dans la feuille de code de la feuille concernée:

VB:
Private Sub Worksheet_Calculate()
Range("B3") = Application.WorksheetFunction.Min(Range("B3"), Range("B2"))
End Sub

A+
 
Re,

Dans la feuille de code de la feuille Mastermind :

VB:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
With Worksheets("Accueil")
If .Range("L10") = "" Then
    .Range("L10") = Range("B11")
    .Range("I10") = Range("B8")
Else
    If Range("B11") < .Range("L10") Then
        .Range("L10") = Range("B11")
        .Range("I10") = Range("B8")
    End If
End If
End With
Application.EnableEvents = True
End Sub

Et, pour éviter le #NA ( et le plantage du code) en début de partie, en B11 de la feuille Mastermind , il faudrait utiliser la fonction sierreur() => =sierreur(RECHERCHEV(4;D13:E36;2;FAUX); "")


Par ailleurs, dans les différentes sub, pour 'vider' la zone de saisie, plutôt que de le faire cellule par cellule, on pourrait utiliser:
VB:
Worksheets("Mastermind").Range("F13:I36").ClearContents

A+

edit: rajout de la modification formule
 
Dernière édition:
Bonsour®
re,

désolé, impossible de convertir votre classeur pour Excel 2003 (plantage à répétitions). Si vous pouviez joindre une version exploitable (.xls)

A+
Pour le fun...
ça marchait il y a déjà 15 ans ...
😉🙄 ça marche encore !!!
upload_2016-11-28_23-42-37.png


Ouppppsssss...
je n'ai pas retrouvé les sons.wav 🙁
 

Pièces jointes

Bonjour Modeste geedee, et merci...

mais ma demande n'avais pas pour but de jouer , mais d'essayer d'apporter une solution à Loison.

@ Loison : curieux Calculate ne se déclenche pas

essayer de lancer cette macro:
VB:
Sub Macro()
Application.EnableEvents = True
End Sub

puis supprimer du code proposé au post 9, les deux lignes : Application.EnableEvents =...

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
329
Réponses
5
Affichages
217
Réponses
5
Affichages
408
Retour