XL pour MAC Codes à 6 chiffres sans doublons

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 !

Artchi29

XLDnaute Nouveau
Bonjour,

Je cherche un moyen de créer une liste de 240 000 codes uniques à 6 chiffres. Les codes pouvant être composés de chiffres allant de 1 à 9.

Le but étant de mettre en place un jeu avec des codes gagnants. Aucun doublon n'est donc possible. Si vous avez des solutions je suis preneur.

Merci beaucoup,

Arthur
 
maintenant je peux me venter d'avoir la plus petite
et sans zero

VB:
Sub testxy()
Dim tblmemo(1 To 999999), tbl(1 To 240000, 1 To 1), tblnumero(1 To 6)
Do
For n = 1 To 6: tblnumero(n) = Int(1 + (Rnd * 8)): Next: num = Join(tblnumero, "")
If tblmemo(num) = "" Then tblmemo(num) = num: i = i + 1: tbl(i, 1) = num
Loop Until i = 240000
Cells(1, 1).Resize(240000).Value = tbl
End Sub

😛 😛 😛 😛 😛 😛

une variable tableau en guise de dictionnaire y a qu'un toulonnais percher pour faire ça
😛 😛 😛 😛
 
re
Bonjour mapomme
purée pourquoi je n'ai pas vu quelque chose d'aussi simple
Social Media and My Need to Be Liked | Emoticone, Smiley heureux ...

la même avec une seule boucle avec mon idée de tableau dico
VB:
Sub ListeAlea240000pat()     'mapomme
    Dim i&, n&, t0, m&, x&, t(1 To 531441, 1 To 1) As Long, dico(1 To 999999)
    t0 = Timer: Randomize
    Do
        i = 111111 + Int(Rnd * (999999 - 111111))
        If InStr(i, 0) = 0 And dico(i) = "" Then n = n + 1: t(n, 1) = i: dico(i) = i
    Loop Until n = 240000

    Range("a1").Resize(240000) = t
    MsgBox "Liste établie en " & Format(Timer - t0, "0.00 \s"), vbInformation
End Sub

le temps est quasi identique
mais c'est quand même étonnant et surprenant( quoi que!!) moi arrêtant la boucle à 240000 je mette autant que toi bouclant 531441 pour chopper les nombres et une 2d fois sur 240000 pour le désordre
comme quoi les if et rnd peuvent être très lourds
 
Dernière édition:
mais c'est quand même étonnant et surprenant( quoi que!!) moi arrêtant la boucle à 240000 je mette autant que toi bouclant 531 441 pour chopper les nombres et une 2d fois sur 240000 pour le désordre
comme quoi les if et rnd peuvent être très lourds
Une explication peut-être ? :

Dans ton dernier code (qui n'est pas de mapomme), tu ne contrôles pas le nombre de fois où on passe dans la boucle DO. J'ai fait un test avec 400 000 éléments à tirer au sort. On passe en moyenne plus de 1 million de fois dans la boucle DO pour atteindre 400 000 nombres différents, soit près de deux fois le nombre max d'éléments sans doublon possible qui est 531 441. En fait, plus il y a de nombres à tirer, plus le nombre de passages va augmenter car on tombera de plus en plus fréquemment sur des doublons.

C'est d'ailleurs pour ça aussi que pour ce type de boucle, on définit souvent un nombre de passage max dans la boucle pour ne pas y tourner "indéfiniment" quand on tire un grand nombre de numéro proche du maximum (531 441 dans notre cas)

Pour les tirages au sort, je me suis aperçu que les méthodes étaient "rapides" dans des plages de quantité à tirer. Certaines sont plus rapides avec un grand nombre d'élément à tirer mais pénalisées quand le nombre à tirer est plutôt faible et pour d'autres méthodes, c'est le contraire. Il n'y a pas une méthode meilleure dans tout les cas.
 
Dernière édition:
- 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
Retour