NUMEROS RANDOM

KELVINCD 06/02/2013 18:14:43
#418918
Boa Tarde to com um problema no código a seguir seria pra geras uma sequencia de numeros de 1 a 25 sem repetilos mas consigo achar o erro.

Private Sub GerarNumeros()

Dim MenorValor As Long, MaiorValor As Long
Dim Contador As Long, Calculado As Long
Dim Repetido As Boolean, Resultado() As Long, Mensagem As String

MenorValor = 1
MaiorValor = 25

For Contador = 1 To 15
DoEvents
[ô]Redimensionando array
ReDim Preserve Resultado(Contador)
[ô]Se for o primeiro numero a gerar,
[ô]não precisa verificar duplicidade
If Not (Contador = 1) Then
Do
[ô]Inicializando geração de
[ô]números aleatórios
Randomize Timer
[ô]Calculando próximo numero
Resultado(Contador) = Int((MenorValor - MaiorValor + 1) & _
Rnd + MaiorValor) & [Ô] [Ô]
[ô]Verificando se o número já existe
For Calculado = 1 To (Contador - 1)
Repetido = (Resultado(Contador) = Resultado(Calculado))
If Repetido Then Exit For
Next
Loop While Repetido
Else
[ô]Gerando o primeiro número
Resultado(Contador) = Int((MenorValor - MaiorValor + 1) & _
Rnd + MaiorValor) & [Ô] [Ô]
End If

[ô]String com os números gerados
Mensagem = Mensagem & Resultado(Contador) & _
IIf((Contador = 15), [Ô][Ô], [Ô]-[Ô])

Next

[ô]Esvaziando array
Erase Resultado

MsgBox Mensagem, vbInformation, [Ô]Numeros[Ô]

End Sub

Private Sub Command1_Click()
GerarNumeros
End Sub
KELVINCD 07/02/2013 17:31:36
#418979
Boas pessoal consegui resolver isso ja se alguém precisar segue em anexo.
gera 15 - 16 - 17 ou 18 números aleatórios de 1 a 25 sem repetir.
GANDA.NICK 07/02/2013 17:40:13
#418983
Olá,


não vi seu code, eu costumo fazar assim, parece-me mais simples...

Private Sub GerarNumeros()
Dim arrSaidos(1 To 15) As Integer, iNumero As Integer, i As Integer, i2 As Integer
Dim Repetido As Boolean
Dim Mensagem As String

Randomize
For i = 1 To 15
Do
Repetido = False
iNumero = Int(Rnd * 25) + 1
For i2 = 1 To 15
If iNumero = arrSaidos(i2) Then Repetido = True
Next [ô]i2
Loop Until Repetido = False
arrSaidos(i) = iNumero
Mensagem = Mensagem & iNumero & IIf((i = 15), [Ô][Ô], [Ô]-[Ô])
Next [ô]i
MsgBox Mensagem, vbInformation, [Ô]Numeros[Ô]
End Sub


KELVINCD 07/02/2013 17:44:28
#418984
hum... muda pouca coisa vlw mesmo assim
KELVINCD 07/02/2013 18:14:18
#418985
Tem assim tbm.
Tópico encerrado , respostas não são mais permitidas