Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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:
Merci de votre reponse mais je n'ai pas compris le code que vous m'avez envoyé pour la feuille de code mastermind, cela n'a aucun impact sur le faite que mon record disparait a chaque partie.
Merci beaucoup pour votre fonction =sierreur
 
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
328
Réponses
5
Affichages
217
Réponses
5
Affichages
408
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…