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

Y compris Power BI, Power Query et toute autre question en lien avec Excel
P
Pierre-Hugo
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 11 septembre 2015
Version d'Excel : 2013 FR

Message par Pierre-Hugo » 11 septembre 2015, 16:52

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
Code aléatoire.xlsx
Merci !
(27.15 Kio) Téléchargé 16 fois
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'690
Appréciations reçues : 345
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 11 septembre 2015, 23:58

Bonjour et bienvenue sur le forum

Un essai à tester. Te convient-il ?
Bye !
Code aléatoire v1.xlsm
(124.54 Kio) Téléchargé 44 fois
P
Pierre-Hugo
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 11 septembre 2015
Version d'Excel : 2013 FR

Message par Pierre-Hugo » 12 septembre 2015, 00:11

Oui merci beaucoup pour ton aide !

C'est très apprécié.

Pierre-Hugo
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'978
Appréciations reçues : 359
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 12 septembre 2015, 18:14

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
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message