random number with exclusion (1 Viewer)

supmktg

Registered User.
Local time
Yesterday, 21:37
Joined
Mar 25, 2002
Messages
360
I'm trying to generate a random number between 1 and 9 based on a fixed master number. I need to exclude numbers that are + or - 1 of the master.

Master = 3 (it changes after each correct random number)

Random OK = 1, 3, 5, 6 ,7 ,8 ,9
Random NOT OK = 2 or 4

I can generate the random number, but can't get how to exclude master + or -1.

Any help would be appreciated!
Sup
 

isladogs

MVP / VIP
Local time
Today, 03:37
Joined
Jan 14, 2017
Messages
18,209
Something like this ...

Store the master as a variable e.g. intMaster
Generate the random number - rnd

If rnd=intMaster+1 or rnd=intMaster-1 Then
'reject rnd ...loop back & regenerate it
Else
'accept rnd & save intMaster=rnd
End If
 

Stormin

Nawly Ragistarad Usar
Local time
Today, 03:37
Joined
Dec 30, 2016
Messages
76
ridders is correct. You can also do this:

Code:
Sub TestRndGen()
    
    Dim ilwb As Integer
    Dim iUPb As Integer
    Dim iout As Integer
    Dim itmp As Integer
    
    ilwb = 1
    iUPb = 9
    iout = -9999
    
    If iUPb < ilwb Then
        MsgBox "Upper and lower bounds are incorrect."
        Exit Sub
    End If
    
Start_Gen:
    Do
        itmp = Int((iUPb - ilwb + 1) * Rnd() + ilwb)
    Loop While (itmp = (iout - 1) Or itmp = (iout + 1))
    
    iout = itmp
        
    If MsgBox( _
        "Generated number between " & ilwb & " and " & iUPb & " is: " & iout & vbNewLine & _
        vbNewLine & _
        "Would you like to re-generate?", _
        vbYesNo, _
        "Number Generator") _
    = vbYes Then GoTo Start_Gen

    MsgBox "Final number is: " & iout
    
End Sub

(already solved but I enjoyed writing this on my coffee break :) )
 

Users who are viewing this thread

Top Bottom