Funcion Aleatoria
Publicado por Seiryu (1 intervención) el 03/12/2013 21:49:47
Buenas tardes, tengo esta macro, que me escribe en la hoja 4 , el nombre de una lista de contactos, hasta ahí, sin problema, el caso es que me interesaría que me los escribiera de forma aleatoria sin repetir.
Tengo entendido que la función Randomize es la adecuada para esto, pero no sé como hacerlo..si por ejemplo quiero que los nombres me los liste de 1 a 20, hago así:
Randomize
R = ((20 - 1 + 1) * Rnd + 1)
Pero no sé como hacer para que esas 20 aleatoriedades las asigne a mi lista y vaya cambiándolas de manera aleatoria, es para realizar torneos, y por eso me interesa realizarlo de esta manera para que no se repitan..
Esta es la macro:
Sub Nombres()
Lin = 6
While Worksheets("Hoja3").Cells(Lin, 2) <> ""
X = Worksheets("Hoja3").Cells(Lin, 2)
XX = Worksheets("Hoja3").Cells(Lin, 3)
XXX = Worksheets("Hoja3").Cells(Lin, 4)
Nombre = X & " " & Left(XX, 1) & " " & Left(XXX, 1)
Worksheets("Hoja4").Cells(Lin, 1) = Nombre
Lin = Lin + 1
Wend
End Sub
Tal cual la macro lo que me hace es escribir de manera ordenada las 20 personas, en la hoja 4.
Y digamos que lo que quiero para simplificar, es que me coja la variable Nombre, y me la escriba de manera aleatoria entre (1-20) en mi hoja 4.
Quiero hacerlo a través de VBA con macros..
Gracias
Un saludo
Tengo entendido que la función Randomize es la adecuada para esto, pero no sé como hacerlo..si por ejemplo quiero que los nombres me los liste de 1 a 20, hago así:
Randomize
R = ((20 - 1 + 1) * Rnd + 1)
Pero no sé como hacer para que esas 20 aleatoriedades las asigne a mi lista y vaya cambiándolas de manera aleatoria, es para realizar torneos, y por eso me interesa realizarlo de esta manera para que no se repitan..
Esta es la macro:
Sub Nombres()
Lin = 6
While Worksheets("Hoja3").Cells(Lin, 2) <> ""
X = Worksheets("Hoja3").Cells(Lin, 2)
XX = Worksheets("Hoja3").Cells(Lin, 3)
XXX = Worksheets("Hoja3").Cells(Lin, 4)
Nombre = X & " " & Left(XX, 1) & " " & Left(XXX, 1)
Worksheets("Hoja4").Cells(Lin, 1) = Nombre
Lin = Lin + 1
Wend
End Sub
Tal cual la macro lo que me hace es escribir de manera ordenada las 20 personas, en la hoja 4.
Y digamos que lo que quiero para simplificar, es que me coja la variable Nombre, y me la escriba de manera aleatoria entre (1-20) en mi hoja 4.
Quiero hacerlo a través de VBA con macros..
Gracias
Un saludo
Valora esta pregunta


0