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

générer 6 nombres entiers aléatoires sans doublons (formule)

  • Initiateur de la discussion Initiateur de la discussion C@thy
  • 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 !

C@thy

XLDnaute Barbatruc
Bonjour (Re) le forum,

J'ai vu qu'il existait dans les téléchargements un programme pour jouer à Des chiffres et des lettres,🙂
malheureusement en faisant F9 j'ai parfois plusieurs fois le même chiffre, alors qu'il est indiqué que ce ne doit pas être le cas...

et pour les lettres, je n'ai pas tout testé, le tirage fonctionne mais je n'arrive pas à afficher les lettres à la suite,

par contre j'ai regardé Chronomot, c'est bien fichu!!! sauf que quand je veux sauvegarder il recharge le dico...

Avez-vous testé ces jeux???

Et si oui, avez-vous les même problèmes que moi? Comment avoir 6 plaques différentes pour les chiffres???

Merci à vous,

Bises et bon ouik

Edit: loin de moi l'idée de critiquer ce qui a été fait, c'est très très bien!!! je cherchais juste à améliorer si c'est possible...😕

C@thy
 
Dernière édition:
Re : générer 6 nombres entiers aléatoires sans doublons (formule)

Bonjour Ca@thy, KenDev,

Evidemment par macro c'est plus facile, voir fichier joint :

Code:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
While [H1] < 6: [A1:F1].Calculate: Wend
Application.EnableEvents = True
End Sub

Edit : chiffres tirés de 1 à 9 pour le fichier (1).

Si l'on veut aussi le zéro, prendre le fichier (2).

A+
 

Pièces jointes

Dernière édition:
Re : générer 6 nombres entiers aléatoires sans doublons (formule)

Re,

Si l'on ne veut pas de formules dans les cellules :

Code:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
[B1:G1].Formula = "=INT(10*RAND())" '"=INT(9*RAND()+1)"
While [I1] < 6: [B1:G1].Calculate: Wend
[B1:G1] = [B1:G1].Value
Application.EnableEvents = True
End Sub
Fichier (3).

A+
 

Pièces jointes

Re : générer 6 nombres entiers aléatoires sans doublons (formule)

Bonsoir à tous,

Une solution sans VBA.

Formule en A1, à tirer jusqu'à F1 :

Code:
=SI($H1<6;ENT(10*ALEA());A1)
Il faut que le calcul itératif soit activé.
A+
 

Pièces jointes

Re : générer 6 nombres entiers aléatoires sans doublons (formule)

Bonjour C@thy, le forum,

La solution précédente a l'inconvénient de ne pas pouvoir utiliser la touche F9.

Alors cette autre solution, mais il faut s'accrocher aux branches :

1) créer en A6 un "grand" nombre aléatoire (plus de 100 chiffres) :

Code:
=SUBSTITUE(ALEA()&ALEA()&ALEA()&ALEA()&ALEA()&ALEA()&ALEA()&ALEA();GAUCHE(0,1;2);"")
2) repérer en A9 la position d'une "bonne" série de 6 chiffres consécutifs (sans doublon) :

Code:
=EQUIV("555555";NBCAR(SUBSTITUE(STXT(A6;LIGNE(INDIRECT("1:99"));6);STXT(A6;LIGNE(INDIRECT("1:99"));1);""))&NBCAR(SUBSTITUE(STXT(A6;LIGNE(INDIRECT("1:99"));6);STXT(A6;LIGNE(INDIRECT("1:99"))+1;1);""))&NBCAR(SUBSTITUE(STXT(A6;LIGNE(INDIRECT("1:99"));6);STXT(A6;LIGNE(INDIRECT("1:99"))+2;1);""))&NBCAR(SUBSTITUE(STXT(A6;LIGNE(INDIRECT("1:99"));6);STXT(A6;LIGNE(INDIRECT("1:99"))+3;1);""))&NBCAR(SUBSTITUE(STXT(A6;LIGNE(INDIRECT("1:99"));6);STXT(A6;LIGNE(INDIRECT("1:99"))+4;1);""))&NBCAR(SUBSTITUE(STXT(A6;LIGNE(INDIRECT("1:99"));6);STXT(A6;LIGNE(INDIRECT("1:99"))+5;1);""));0)
C'est une formule matricielle à valider par Ctrl+Maj+Entrée.

PS : si l'on ne veut pas de zéro, il est facile d'éliminer les zéros en A6.

Edit : noter que même avec 100 chiffres il arrive qu'il n'y ait pas de "bonne" série (c'est rare).

A+
 

Pièces jointes

Dernière édition:
Re : générer 6 nombres entiers aléatoires sans doublons (formule)

Re,

Emporté par l'élan, j'avais complètement occulté le fait qu'il s'agit du jeu Des chiffres et des lettres.

Comme je ne regarde plus cette émission depuis longtemps, j'ai été voir dans Wikipédia :


J'ai donc revu les 2 solutions par VBA et par formules.

Fichiers joints.

Edit : j'aurais dû mieux regarder la solution de KenDev, il connait le jeu lui, mes excuses 🙂

A+
 

Pièces jointes

Dernière édition:
Re : générer 6 nombres entiers aléatoires sans doublons (formule)

Re,

Et pour terminer, une solution par formules utilisant la touche F9 :

- nombre maximum d'itérations porté à 10000

- formule modifiée en H4 (elle force le recalcul) :

Code:
=SOMMEPROD(1/NB.SI(A4:F4;A4:F4))-ENT(10*ALEA())
Un bémol : 1 fois sur 10 le recalcul ne se fait pas...

Edit : avec 1 fois sur 30 ça marche encore bien mais c'est plus long : fichier (2)

A+
 

Pièces jointes

Dernière édition:
Re : générer 6 nombres entiers aléatoires sans doublons (formule)

Alors là, bravo,

vous vous êtes surpassés (comme d'hab, mais je suis toujours épatée à chaque fois)

Chouette! On va pouvoir jouer au Compte est bon!!! Génial!!

Bises à tous et un super grand merci

C@thy
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…