Générer 10 000 codes aléatoires différents

Bonjour à vous !

Je dois présentement générer 10 000 code aléatoire différents pour la création de bond cadeau pour un souper corporatif.

J'ai littéralement appris «sur le tas» les VBA sur Excel. J'ai tenté de me débrouiller avec les réponses aux forums et différents tutoriels, mais j'ai présentement atteint un mur.

Voici les contraintes:

1. Assurer qu'il soit impossible qu'un code se répète (dans la première liste de 10 000 ainsi que dans celle qui suiveront)

2. Le code généré doit contenir 10 caractères (lettre, nombre,...) en excluant les lettre «i», «o» «l» et les chiffre «1» et «0»

3. De plus, j'ai besoin de pouvoir contrôler le premier caractère du code. Le but est de pouvoir changer le premier et le dernier caractère pour changer d'occasion (empêcher qu'il y ait une répétition parmi plusieurs événements simultanées).

4. J'ai aussi besoin des résultats directement dans les cases Excel (pas en MsgBox)

Voici je que j'ai présentement de fait en pièce jointe si ça peut vous aider à vous orienter.

Merci pour votre aide ! J'ai vraiment hâte de comprendre ce qui me manquait

Au plaisir

Pierre-Hugo

21code-aleatoire.xlsx (27.15 Ko)

Bonjour et bienvenue sur le forum

Un essai à tester. Te convient-il ?

Bye !

Oui merci beaucoup pour ton aide !

C'est très apprécié.

Pierre-Hugo

Bonjour,

une autre solution

Sub code_alea()
    Randomize
    carac = "ABCDEFGHJKMNPQRSTUVWXYZ23456789"
    lettre_aleatoire = ""
    Set dico = CreateObject("Scripting.Dictionary")
    For k = 1 To 10000
    tiragenotok = True
        While tiragenotok
            For i = 1 To 10
                If i = 1 Then
                    lettre_aleatoire = "A" ' lettre choisie pour position 1
                ElseIf i = 10 Then
                    lettre_aleatoire = lettre_aleatoire & "A" ' lettre choisie pour position 2
                Else
                    nombre_aleatoire = Application.WorksheetFunction.RandBetween(1, Len(carac))
                    lettre_aleatoire = lettre_aleatoire & Mid(carac, nombre_aleatoire, 1)
                    If i = 5 Then lettre_aleatoire = lettre_aleatoire & "-"
                End If
            Next
            If dico.exists(lettre_aleatoire) Then
                tiragenotok = True
            Else
                dico.Add lettre_aleatoire, 1
                tiragenotok = False
            End If
        Wend
    Next k
    Range("A1:A10000") = Application.Transpose(dico.keys)
End Sub
Rechercher des sujets similaires à "generer 000 codes aleatoires differents"