Numeros aleatorios

28/01/2004 - 16:14 por Susana | Informe spam
Hola chic@s

Necesito el codigo en VBA que genere 6 numeros del 1 al 49 sin que se
repitan y que los coloque de menor a mayor.

Gracias

Preguntas similare

Leer las respuestas

#6 Fernando Arroyo
30/01/2004 - 18:52 | Informe spam
"Susana" <@> escribió en el mensaje news:
Muchas gracias Fernando.




De nada, pero al revisar el código veo que hay una línea que, aunque funciona, no es correcta:

v = Int((49 - 1 + 1) * Rnd + 1) & ","

hay que sustituirlo por

v = Int((49 - 1 + 1) * Rnd + 1)

Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#7 cataplas
30/01/2004 - 19:53 | Informe spam
Hash: SHA1

Podrías utilizar la funcion aleatorio.entre y después ordenar los
números.


"Susana" <@> escribió en el mensaje
news:%
Hola

Necesito el codigo en VBA que genere 6 numeros del 1 al 49 sin
que se repitan y que los coloque de menor a mayor.

Gracias


Respuesta Responder a este mensaje
#8 Fernando Arroyo
01/02/2004 - 12:42 | Informe spam
He modificado de nuevo el código porque he visto que tal como estaba los números del 1 al 9 tenían menos posibilidades de aparecer que el resto. El código nuevo es:


Sub Aleatorio6_49()
Dim v As Byte, s As String, m As Variant
'Crear la matriz con los 6 números
Do
v = Int((49 - 1 + 1) * Rnd + 1)
If InStr(s, Right("0" & v, 2)) = 0 Then
s = s & IIf(Len(s) = 0, "", ",") & Right("0" & v, 2)
End If
m = Split(s, ",")
If UBound(m) = 6 Then Exit Do
Loop

'Volcar matriz a hoja
For v = 1 To 6
Worksheets("Hoja1").Range("A" & v) = m(v - 1)
Next v

'Ordenar rango A1:A6
Worksheets("Hoja1").[A1:A6].Sort _
Key1:=Range("A1"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub


Fernando
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida