View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.misc
Gilles Desjardins
 
Posts: n/a
Default Randomized Functions

'This UDF will generate x unique random numbers between any 2 numbers you
specify. Many thanks to J.E. McGimpsey for modifying this to work on more
than 10 numbers.

'The Code

'To use this UDF push Alt+F11 and go InsertModule and paste in the code.
Push Alt+Q and save. The Function will appear under "User Defined" in the
Paste Function dialog box (Shift+F3). Use the Function in any cell as shown
below.

'=RandLotto(1,20,8)
'This would produce 8 unique random numbers between 1 and 20

Function RandLotto(Bottom As Integer, Top As Integer, _
Amount As Integer) As String
Dim iArr As Variant
Dim i As Integer
Dim r As Integer
Dim temp As Integer

Application.Volatile

ReDim iArr(Bottom To Top)
For i = Bottom To Top
iArr(i) = i
Next i
For i = Top To Bottom + 1 Step -1
r = Int(Rnd() * (i - Bottom + 1)) + Bottom
temp = iArr(r)
iArr(r) = iArr(i)
iArr(i) = temp
Next i
For i = Bottom To Bottom + Amount - 1
RandLotto = RandLotto & " " & iArr(i)
Next i
RandLotto = Trim(RandLotto)
End Function

Works great for me

Gilles
"Kleverton Silva" <Kleverton wrote in
message ...
how do i do to make Excel to generate random numbers to 30 persons?, but
one
detail, no repeated numbers! i tried the "=Randbetween(1;30)" but i
couldn't
avoid repeated numbers...