Private Sub Command1_Click() 'Permet de générer un nombre aléatoirement For n = 1 To 41 Randomize nbrnd = Int((1 * Rnd) * n) Next n 'à partir du nombre généré, on va définir la clé à afficher Select Case nbrnd Case 1 Text1 = "RHKG3-8YW4W-4RHJG-83M4Y-7X9GW" Case 2 Text1 = "QW4HD-DQCRG-HM64M-6GJRK-8K83T" Case 3 Text1 = "PQTHM-RWBHR-3BPVW-TFB22-V8HXQ" Case 4 Text1 = "KQC2B-X683R-2CDXT-PQ7HQ-47MPT" Case 5 Text1 = "JFQYM-YJQFQ-VBRCY-4VV7W-QRXBY" Case 6 Text1 = "KMTTB-68H32-8MKRK-GBHKT-RKCP6" Case 7 Text1 = "CX7DD-4GX4Y-BTTR4-H88Y7-GQPWQ" Case 8 Text1 = "XP8BF-F8HPF-PY6BX-K24PJ-TWT6M" Case 9 Text1 = "8RCKG-36TH8-VWBGK-T3CB6-RHG48" Case 10 Text1 = "7G4H4-T4XXW-BVXTH-4QP4V-9CV28" Case 11 Text1 = "PG274-383QX-6C32H-P8RWC-48M4Q" Case 12 Text1 = "CWY3F-JGYHJ-W6KBG-3VYK7-DGG7M" Case 13 Text1 = "X6YWJ-M4TG2-DPGWJ-QCFR8-927M6" Case 14 Text1 = "QCP6D-7VGVJ-JBKB4-DQMB2-9GTJ3" Case 15 Text1 = "F7GV4-B7JGY-Q2KQW-6R8BM-FR8D6" Case 16 Text1 = "HFVK4-TFWFG-4JKDH-H3FTT-8B23W" Case 17 Text1 = "HRPR7-WGJFC-VPHRB-XVFRW-2KPWY" Case 18 Text1 = "V3V63-3QW2G-JMFBY-8F4CM-PDMQW" Case 19 Text1 = "WX736-8YJCM-2JW33-4KJGY-XCDJ6" Case 20 Text1 = "CQKYH-GKDJC-MJTWP-FPTJX-PKK23" Case 21 Text1 = "CHYVW-V63RT-67XVC-XJ4VC-M3YWD" Case 22 Text1 = "XMDCV-2TJMR-7JD66-YTVMK-V7PBD" Case 23 Text1 = "RQHFJ-X47QJ-G2XKK-WYQ8P-7W6RG" Case 24 Text1 = "X6MYY-6BH3T-YRBT8-H8YPH-RG68T" Case 25 Text1 = "KVXQ3-RVQFG-FW8KC-2QYC6-67WCD" Case 26 Text1 = "KMM7J-FCXMM-WV8PG-6FQMD-CPTQD" Case 27 Text1 = "D6T24-3FBGM-WTDG8-6Y3WP-77QRJ" Case 28 Text1 = "V88FQ-MFFRR-8D2VY-PG87J-FG7PY" Case 29 Text1 = "XK39D-3PDMC-JMMDK-X8T8M-77YVM" Case 30 Text1 = "6G3J7-RQ233-FJGHD-GKYP4-QGKPG" Case 31 Text1 = "BKRFY-XPMQP-Y8PTW-BP6JM-B76FJ" Case 32 Text1 = "GP7DR-2T2CQ-JYW2M-DXTMG-DTQWY" Case 33 Text1 = "YWVHF-GT3M6-3QYB2-FCYCH-X47PQ" Case 34 Text1 = "QJ68H-G7T8R-WFR77-D8X8Y-VJ398" Case 35 Text1 = "6KYDY-JT4MB-6V3JQ-4KKFG-P6C63" Case 36 Text1 = "6JQPJ-84CFG-JCBQP-PVRJP-9G24Q" Case 37 Text1 = "MQ8JV-XXKVG-DB8V3-67WJB-RCB6W" Case 38 Text1 = "J3T66-JTP72-TGT7H-PMMWH-XM4K3" Case 39 Text1 = "DB4H8-DQJJB-KXMWP-GPJVY-H7P6W" Case 40 Text1 = "38BXC-F2C4R-PXMXV-DBQXM-3C7V6" Case 41 Text1 = "7FMM3-W4FMP-4WRXX-BKDRT-7HG48" Case Else 'Si le nombre n'est pas compri entre 1 et 41, 'On régénère le nombre For n = 1 To 41 Randomize nbrnd = Int((1 * Rnd) * n) Next n End Select 'Si le nombre dépasse 41, 'On régénère ce nombre If nbrnd > 41 Then For n = 1 To 41 Randomize nbrnd = Int((1 * Rnd) * n) Next n End If 'Si le nombre est inférieur à 41, 'On régénère ce nombre If nbrnd < 1 Then For n = 1 To 41 Randomize nbrnd = Int((1 * Rnd) * n) Next n End If End Sub Private Sub Command2_Click() 'Pour quitter End End Sub Private Sub Command3_Click() 'Pour copier la clé Clipboard.SetText (Text1) End Sub Private Sub Form_Unload(Cancel As Integer) 'Pour bien fermer l'application End End Sub Private Sub Picture2_Click() 'Retour à la feuille de présentation Me.Hide Form2.Show End Sub
Télécharger le zip
Je ne voudrais pas etre méchant, mais il y a juste qqch qui me tracasse...D'après ce que je sais, tu pourrais remplacer tous tes for n = 1 to 41... par un tout simple NbRnd = fix(Rnd*41) qui te renverrais un entier entre 0 et 40... et puis +1 si tu veux qu'il soit entre 1 et 41...Moi je dis ca c'est gratuit c'est juste une question que je me posais...:PVlad
oui, mais après, je pense pas qu'on puisse définir les clés à afficher...Dis-moi si je me trompe...@+Sharky
D'après moi, et je peux me tromper...Ca revient au meme, 15 lignes de codes en mois, de faireNbRnd = Rnd×41Que de faire une boucle inutile avant de vérifier si on a dépassé...
Moi je dois dire je vois déjà pas l'utilité de ces 40 lignes de Select ... Case ... A mon sens c'est complètement ridicile de mettre ces "clés" en dur dans le code mais bon. Je verrais mieux un VRAI générateur de clés style itérateur. Ca allègerais le style...
Et bien enfait, le but de ce petit prog était d'expliquer comment définir la clé à générer... bien sûr qu'il était possible de générer une clé aléatoire à chaque fois, mais je ne vois pas l'utilité... car un générateur de clé définit une clé précise pour le programme...du moins, c'estc e que je pense...c'est du basique, c'est que du texte, je le rappelle...Merci et bonne prog
RhooooôJamais !Jamais un constructeur consciencieux (a part M$ peut etre) ne mettrait "en dur" les codes dans le programme !!!SimonKari as raison : rien n'est aléatoire en informatique, au mieux tu aura de l'imprédictif...Héhé non mais essayes toi à un générateur qui respecte une loi mathématique (Checksum = 10, Somme des chiffres = 25) et pis voila !
ben si vous etes pas content, allez voir ailleur !sinon faites le vous meme !
Il n'est pas question ici d'être content ou pas. On veut juste indiquer à Sharkiller que son code est très très optimisable, et pointer du doigt les points qui fachent. Sinon, aucune chance pour lui de s'améliorer.Par exemple :=====================================================================# For n = 1 To 41# Randomize# nbrnd = Int((1 * Rnd) * n)# Next nAu passage, 1 * Rnd = RndLes deux lignes qui suivent font la même chose, et tu obtiendras un vrai résultat aléatoire. Sans regénérer le compteur de Rnd, tu obtiendrais toujours les mêmes valeurs.Randomize Timer ' réinitialisation du générateur de nombres aléatoires;nbrnd = Int(41*Rnd)+1Ce qui donnera 1 <= nbrnd < 42Avec çà, aucun risque de sortir des bornes.==============================================================# 'Si le nombre dépasse 41,# 'On régénère ce nombre# If nbrnd > 41 Then# For n = 1 To 41# Randomize# nbrnd = Int((1 * Rnd) * n)# Next n# End If# 'Si le nombre est inférieur à 41,# 'On régénère ce nombre# If nbrnd < 1 Then# For n = 1 To 41# Randomize# nbrnd = Int((1 * Rnd) * n)# Next n# End IfEt si ici, après les 2 If, nbrnd > 41, tu fais quoi ? Le "If >41" est déjà passé ... Y'a comme un hic d'algo.==============================================================Enfin, les boucles For ne servent à rien du tout. Remplaces 'n' directement par 41, tu gagneras du temps CPU et de la lisibilité.
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 874 788 membres 13 nouveaux aujourd'hui 16 152 membres club