NUMEROS RANDOM
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
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
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.
gera 15 - 16 - 17 ou 18 números aleatórios de 1 a 25 sem repetir.
Olá,
não vi seu code, eu costumo fazar assim, parece-me mais simples...
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
hum... muda pouca coisa vlw mesmo assim
Tem assim tbm.
Tópico encerrado , respostas não são mais permitidas