Gerar números aleatórios entre 0 e 100 sem repetição
Enviado: 09 Mai 2016 às 12:36
Boa tarde pessoal, estava precisando de uma macro para fazer simulações da LotoMania, preciso que gere 20 números de 0 a 100 sem repetição, vasculhando a internet achei essa macro, o único probema é que ela nunca sorteia o número "0" zero, já fiz mais de 1000 sorteios com ela e em nenhuma vez saiu o nº 0, alguém se prontifica a me ajudar?
Código: Selecionar todos
Sub SorteioLotoMania()
Dim V() 'Vetor
Dim CONT As Integer 'Contador
Dim I As Integer 'Índice do vetor
Dim QUANT_SORT As Integer 'Recebe o valor de quantos Nº aleatórios serão gerados
Dim NUM_SORT As Integer 'Recebe um número sorteado
Dim LIN As Integer 'Determina em que linha o Nº aleatório será colocado
Dim REP As Integer 'Repetidor
Dim VAL_MIN As Integer 'Recebe o valor mínimo na faixa de números
Dim VAL_MAX As Integer 'Recebe o Valor máximo na faixa de números
Dim FAIXA_SORT As Integer 'Faixa de valores possíveis ao sorteio
On Error GoTo SAIDA
INICIO:
VAL_MIN = 0
VAL_MAX = 100
CHECA_VALOR_MAX:
FAIXA_SORT = VAL_MAX - VAL_MIN
QUANT_SORT = 20
Randomize
For LIN = 1 To QUANT_SORT
I = I + 1
ReDim Preserve V(I)
REPETE:
NUM_SORT = Int(Rnd * VAL_MAX + VAL_MIN)
REP = 0
For CONT = I - LIN To I
If NUM_SORT = V(CONT) Or NUM_SORT > VAL_MAX Then
REP = 1
End If
Next
If REP = 1 Then
GoTo REPETE
Else
V(I) = NUM_SORT
End If
Next
I = 0
For LIN = 1 To QUANT_SORT
I = I + 1
ActiveCell.Value = V(I)
ActiveCell.Offset(0, 1).Activate
Next LIN
ActiveCell.Offset(1, -20).Activate
SAIDA:
End Sub