Aprenda a gerar números aleatórios no Excel sem repetição na mesma linha. Serve para jogos de loterias como Mega Sena, Quina, Lotofácil, DuplaSena, TimeMania , Lotomania e outras necessidades.
Segue abaixo o código VB:
Sub GerarNúmerosAleatóriosSemRepetir()
'Suponha que os nomes estão no intervalo B1:G10
Const nMínimo As Long = 1
Const nMáximo As Long = 12
Const strDestino As String = "B1:M1"
Dim n As Long
Dim r As Long
Dim col As Collection
Randomize Timer
Set col = New Collection
On Error Resume Next
Do
n = Int(Rnd * nMáximo) + nMínimo
col.Add n, CStr(n)
Loop Until col.Count = nMáximo
For n = 1 To nMáximo
Range(strDestino).Cells(n) = col(n)
Next n
On Error GoTo 0
Const nMínimo1 As Long = 1
Const nMáximo1 As Long = 12
Const strDestino1 As String = "B2:M2"
Dim n1 As Long
Dim r1 As Long
Dim col1 As Collection
Randomize Timer
Set col1 = New Collection
On Error Resume Next
Do
n1 = Int(Rnd * nMáximo1) + nMínimo1
col1.Add n1, CStr(n1)
Loop Until col1.Count = nMáximo1
For n1 = 1 To nMáximo1
Range(strDestino1).Cells(n1) = col1(n1)
Next n1
On Error GoTo 0
Const nMínimo3 As Long = 1
Const nMáximo3 As Long = 12
Const strDestino3 As String = "B3:M3"
Dim n3 As Long
Dim r3 As Long
Dim col3 As Collection
Randomize Timer
Set col3 = New Collection
On Error Resume Next
Do
n3 = Int(Rnd * nMáximo3) + nMínimo3
col3.Add n3, CStr(n3)
Loop Until col3.Count = nMáximo3
For n3 = 1 To nMáximo3
Range(strDestino3).Cells(n3) = col3(n3)
Next n3
On Error GoTo 0
End Sub
Ещё видео!