NUMERACAO AUTOMATICA
Ola colegas
eu gostaria de saber como eu poderia fazer para obter uma numeração automática, mas não sequencial, e sim aleatório, como se fosse um sorteio!!
Um exmplo, eu clico em um botão e aparece na caixa de texo um número qualquer, aleaório, sendo que se eu clicar novamente aparecerá um outro número que não da sequencia ao primeiro. Não sei se fui claro, mas creio que poderão me ajudar.
eu gostaria de saber como eu poderia fazer para obter uma numeração automática, mas não sequencial, e sim aleatório, como se fosse um sorteio!!
Um exmplo, eu clico em um botão e aparece na caixa de texo um número qualquer, aleaório, sendo que se eu clicar novamente aparecerá um outro número que não da sequencia ao primeiro. Não sei se fui claro, mas creio que poderão me ajudar.
Qual é o limite? Essa sua sequência vai de zero até quanto?
Numero = Int(Rnd * 10000)
' depois é so testar se o numero ja existe
' depois é so testar se o numero ja existe
Max - O limite é indiferente, poderia ser de 0 a 99 por exemplo, já estaria ótimo
Clayton - Você poderia explicar seu código um pouco melhor? sou iniciante em VB
Clayton - Você poderia explicar seu código um pouco melhor? sou iniciante em VB
Faça da seguinte maneira:
function Num
Randomize
MsgBox Int((99 * Rnd) + 1) ' Gera valor aleatorio entre 1 e 99
end function
Até mais...
function Num
Randomize
MsgBox Int((99 * Rnd) + 1) ' Gera valor aleatorio entre 1 e 99
end function
Até mais...
Num módulo:
Public seq() As String
Public n As Long
No form, com um botão e um listbox:
Private Sub Form_Load()
'cria a sequência
'Vou fazer uma sequencia de 0 a 10
n = 10
ReDim seq(n, 1) 'serão (n + 1) linhas (de 0 a n) e duas colunas (de 0 a 1)
For qqu = 0 To n
seq(qqu, 0) = CStr(qqu)
Next
End Sub
Private Sub Command1_Click()
Do While List1.ListCount <> n + 1
num = Int(Rnd * (n + 1)) 'Rnd gera números entre 0 e 1, exclusive. Então a expressão vai gerar números inteiros entre 0 e n
If seq(num, 1) = "" Then 'se a coluna 1 do array seq na linha "num" estiver vazia então joga esse num na listbox e marca essa linha como "usada"
List1.AddItem seq(num, 0)
seq(num, 1) = "usada"
End If
Loop
List1.AddItem "Pronto!"
End Sub
Public seq() As String
Public n As Long
No form, com um botão e um listbox:
Private Sub Form_Load()
'cria a sequência
'Vou fazer uma sequencia de 0 a 10
n = 10
ReDim seq(n, 1) 'serão (n + 1) linhas (de 0 a n) e duas colunas (de 0 a 1)
For qqu = 0 To n
seq(qqu, 0) = CStr(qqu)
Next
End Sub
Private Sub Command1_Click()
Do While List1.ListCount <> n + 1
num = Int(Rnd * (n + 1)) 'Rnd gera números entre 0 e 1, exclusive. Então a expressão vai gerar números inteiros entre 0 e n
If seq(num, 1) = "" Then 'se a coluna 1 do array seq na linha "num" estiver vazia então joga esse num na listbox e marca essa linha como "usada"
List1.AddItem seq(num, 0)
seq(num, 1) = "usada"
End If
Loop
List1.AddItem "Pronto!"
End Sub
Tópico encerrado , respostas não são mais permitidas