Nombre mystère

Bonjour,

J'ai voulu créer un jeu du nombre mystère sur excel,

voilà mon problème, j'arrive a générer un nombre aléatoire qui devra être retrouvé par encadrements successifs. sauf que à chaque fois que je saisis une proposition et que je tape sur entrée, mon nombre aléatoire change. Il est alors impossible de réussir le jeu.
Existe t-il une astuce pour que le nombre aléatoire reste le même durant toute la partie?

J'espère avoir été clair...

Merci d'avance pour vos réponses

Laurent

9 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Il faudrait voir ton code pour t'aider. Mais normalement tu mets ton nombre dans une variable, et si tu ne la modifies jamais alors elle gardera toujours la même valeur.
    1. Contributeur
      Pourquoi parles-tu d'excel alors que tu postes ton programme dans le forum C ?
      Est-ce de l'Excel (VBA) ou du C ?
    2. Modérateur
      Bien vu ! J'avais effectivement zappé le fait que ce soit de l'Excel, j'avais surtout vu le C...
      Mais la réponse devrait rester la même quelque soit le langage !
  2. Bonsoir,

    Autant pour moi, je viens de me rendre compte que je m'étais trompé de rubrique.
    Je suis effectivement dans une feuille de calcul excel.
    quand je saisis un nombre dans une cellule, automatiquement toutes les cellules de la feuille sont mises à jour. moi, ce que je voudrai, c'est que la cellule qui contient le nombre mystère obtenu aléatoirement ne soit pas modifiée.

    Laurent
    1. Contributeur
      Comme on t'a dit, il nous faut le code si tu veux qu'on t'aide...
  3. Bonjour,

    Effectivement si ton nombre aleatoire provient d'une formule sur la feuille le recalcul se fait à chaque modificatin de la feuille

    Tu peux obtenir un nombre aleatoire par une macro vba et le placer dans une cellulle, il ne variera plus

    Ouvrir l'editeur Alt F11

    Inserer un module et rentrer le code suivant

    Sub tirage()
    Dim nombre
    Randomize ' Initialise le générateur de nombres aléatoires.
    ' Renvoie une valeur aléatoire comprise entre 1 et 100.
    nombre= Int((100* Rnd) + 1)
    'Place le nombre en cellule A1
    cells(1,1).value=nombre
    End Sub

    Ensuite appeler la macro depuis l'Onglet developpeur Macros
    ou inserer un bouton qui appelera la macro

    Cdlmnt
    1. Bonjour et merci de vos réponse,

      Entre temps, j'ai tatoné un peu et comme je ne connais pas le langage VBA, il me semble avoir trouvé une solution plus simple:
      Si je mets ma formule aléatoire dans une case sur la feuille numéro deux et que je clique sur "calcul manuel". ensuite je garde le calcul automatique dans la feuille numéro un. ne suffit-il pas de cliquer sur "calcul maintenant " de la feuille numéro 2 pour générer mon nombre? Ainsi quand je ferais des propositions sur la feuille numéro 1, le nombre de la feuille numéro 2 ne devrait pas changer, si?
      je vous l'avoue, c'est un peu du système D
      En ce qui concerne le code demandé, je ne sais pas de quoi il s'agit.
      Je vous souhaite un bon WE
      Laurent
      1. Contributeur
        Si je mets ma formule aléatoire dans une case sur la feuille numéro deux
        Bah quelle formule ? ALEA() ? Faut préciser...
        Sinon tu as deux solutions, soit tu fais un bouton qui fait que ça recalcule tout uniquement lorsque tu cliques dessus, ou alors du code VBA.
    2. Bon ben j'ai vendu la peau de l'ours avant de l'avoir tuée:
      si je change les paramètres du calcul sur une feuille çà change également sur l'autre feuille.
      J'ai donc essayé d'ouvrir deux fenêtres distincte, mais alors celle ci n'ont plus aucun rapport entre elles.
      En effet, j'ai mis sur une cellule de la première fenêtre
      "=C:\Users\Utilisateur\Desktop\[Le nombre.xlsx]Feuil1'!$A$1"
      la formule en question que je trouve dans la fenêtre 2
      "ENT(ALEA()*(MAXIMUM-0)+0) ou MAXIMUM et le nombre choisi pour faire trouvé un nombre entre 0 et MAXIMUM.
      La cellule maximum se trouve dans la première fenêtre.
      Donc résumons: en choisissant 2 feuilles différentes, l'une n'est pas assez indépendante de l'autre et en choisissant 2 fenêtres différentes, l'une est trop indépendante de l'autre.
      J'espère encore une fois avoir été clair. Je peux si vous êtes intéressés vous envoyer mon fichier contenant les deux feuilles.
      Laurent
      1. Contributeur
        Bonjour,

        si tu ne veux pas utiliser le vba proposé par via55 tu peux faire ainsi :
        Dans les options autoriser le calcul itératif.
        En A2:
        =SI(B2="";ENT(ALEA()*100+1);A2)
        Si tu mets un X en B2 ton nombre aléatoire est bloqué.
        Si tu le supprimes un nouveau est affiché, remettre le verrou.

        https://www.cjoint.com/?CBqpol07cvY

        eric
        1. Bonjour Eric

          Super astuce ! je retiens la manip
          J'ai testé et même sans activer calcul itératif cela affiche l'erreur d'avertissement de reference circulaire mais cela fonctionne quand même

          Cordialement
        2. salut eric,

          totalement d'accord avec via55, super astuce

          bonne soirée
      2. Salut;

        C'est avec la fonction ALEA() que tu génère tes nombres aléatoires?

        Si c'est oui, c'est normal qu'à chaque ENTER ces nombres changent.

        Si tu veux qu'ils changent pas, moi je te propose la solution suivante :

        1° Sélectionner la cellule ( ou la plage de cellules) qui contient le(s) nombre(s) aléatoire(s).

        2° Clique droit, Copier

        3° Sur la (les) même cellule(s), Clique Droit / Collage Spécial / Coller : Valeurs / OK

        4° Normalement les nombres ne changerons plus.

        Abdelaziz