Générer 3 numéros aléatoires unique dans Microsoft Excel
Si vous souhaitez générer une liste de nombres aléatoires uniques, vous pouvez utiliser les fonctions RANDBETWEEN et VBA RND. Dans cet article, nous allons générer 3 numéros uniques à partir de la liste fournie.
Vous pouvez trouver la question originale http://www.excelforum.com/excel-programming-vba-macros/1093315-vba-for-do- while-loop.html[ici]
Question: Je veux qu’une macro génère une liste de 3 nombres aléatoires à partir d’une liste de nombres enregistrés dans la colonne A. Il y a une condition que le code VBA doit être pris en compte. La condition est qu’il y a 3 nombres qui existent dans la colonne B, donc la macro doit créer une liste de nombres qui ne se sont pas produits une fois dans la colonne B. De cette façon, nous pouvons avoir une liste de nombres uniques dans la colonne B & C. |||| Voici un aperçu de l’exemple que nous avons:
===
Pour obtenir la liste des nombres aléatoires uniques; nous devons suivre les étapes ci-dessous pour lancer l’éditeur VB Cliquez sur l’onglet Développeur Dans le groupe Code, sélectionnez Visual Basic
-
Copiez le code ci-dessous dans le module standard
Pour exécuter la macro, nous pouvons appuyer sur la touche F5 du clavier si vous êtes actif dans l’écran de Visual Basic Editor. Une autre façon d’exécuter la macro consiste à utiliser la touche «ALT + F8»; sélectionnez la macro et cliquez sur le bouton Exécuter
Sub RandomNumbers() Dim ws As Worksheet Dim ar As Variant Dim RandomNum As Long Dim i As Integer Dim myVal As Long Randomize Set ws = ThisWorkbook.Sheets("Numbers") With ws ar = .Range("A" & Rows.Count).End(xlUp).Row .Range("C1:C3").ClearContents For i = 1 To 3 Do RandomNum = Int((1 - ar + 1) * Rnd + ar) myVal = .Range("A" & RandomNum).Value Loop Until Range("B1:C24").Find(what:=myVal, lookat:=xlWhole) Is Nothing .Range("C" & i).Value = myVal Next i End With End Sub
-
Lorsque nous exécutons le code VBA, la liste unique de numéros sera automatiquement générée
Explication du code:
Dans le code ci-dessus, nous utiliserons la fonction RND & INT avec la boucle For & Do pour obtenir le résultat.
-
Nous déclarons Dim ws comme feuille de travail; le but de déclarer ws comme feuille de travail est que nous voulons que le code s’exécute uniquement sur une feuille de calcul spécifique, c’est-à-dire
Numbers dans notre exemple Dim RandomNum As Long: cela sauvera les nombres uniques Set ws = ThisWorkbook.Sheets (« Numbers »): cette ligne garantira que le code s’exécute sur la feuille Numbers uniquement La prochaine ligne de code utilisera With instruction ar = .Range (« A » & Rows.Count) .End (xlUp) .Row: cette ligne sauvegardera la dernière cellule de la colonne A (24 dans notre exemple)
Si vous avez aimé nos blogs, partagez-les avec vos amis sur Facebook. Et vous pouvez aussi nous suivre sur Twitter et Facebook.
Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer, compléter ou innover notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]