Excel - Envio un codigo

 
Vista:

Envio un codigo

Publicado por Carmen Ramirez (6 intervenciones) el 25/01/2007 19:12:50
Buen dia:

Les envio el siguiente codigo para ver si me pueden asesorar, ya que estoy haciendo una macro que me permita primeramente llenar datos aleatorios de la celda A1 hasta la M1 en "X" numero de hojas que voy agregando posteriormente necesito que llene nuevamente con datos aleatorios de la celda A2 hasta la M2 y asi sucesivamente hasta que llegue a A50 hasta M50 pero la vedad ya no se como seguirle, de antemano gracias por la persona que me pueda ayudar, el codigo es el siguiente.

La primera fase ya la hace lo que no se es como puedo hacer que se vayan agregando los datos en A2: M2, A3:M3 y asi sucesivamente, gracias y buenas tardes.

Sub Calculo_aleatorio()

'Declaración de Variables
Dim Nombre_Libro As String
Dim I As Integer
Dim Inicia
Dim Termina

Inicia = Time
Application.ScreenUpdating = False

Nombre_Libro = "aleatorio.xls"
Set Libro_Nuevo = Workbooks.Add
Libro_Nuevo.SaveAs Filename:=Nombre_Libro

For I = 1 To 5 Workbooks(Nombre_Libro).Sheets.Add
Next I

Workbooks(Nombre_Libro).Sheets(I).Activate
Workbooks(Nombre_Libro).Sheets(I).Range("A1, M1").Activate
Workbooks(Nombre_Libro).Sheets(I).Range("A1:M1").Value = Rnd()

Application.ScreenUpdating = True

Termina = Time

MsgBox "Inició el proceso:" & Inicia & "Terminó el proceso:" & Termina
Application.Calculation = xlCalculationAutomatic

End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Envio un codigo

Publicado por JAG (139 intervenciones) el 25/01/2007 21:05:53
Si eso te funciona creo que con ponerle el rango de A1:M1 poner A1 : M50

El FOR es para definir las hojas, Has otro FOR para rellenar las celdas....

Espero tenga razon y funcione suerte

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Envio un codigo

Publicado por José Luis (700 intervenciones) el 25/01/2007 21:27:18
Debes llevar un control de cuantas líneas llevas rellenadas para que a la siguiente vez que generas los números aleatorios los ponga en la línea siguiente.

La celda O1 debe estar vacía ...

For I = 1 To 5 Workbooks(Nombre_Libro).Sheets.Add
Next I

Workbooks(Nombre_Libro).Sheets(I).Activate

Range("O1").Select
Selection.Font.ColorIndex = 2
'Poner la fórmula
ActiveCell.FormulaR1C1 = "=COUNTA(C[-2])"
'Coger el dato de número de filas
NFilas = Range("H1").Value
'Borrar la fórmula
Selection.ClearContents
Range("A" & NFilas).Select
NFilas = NFilas + 1

'Insertar datos
Rango = "A" & NFilas & ":" & "M" & NFilas
Range("A" & NFilas).Value = TextBox1 & TextBox4

Workbooks(Nombre_Libro).Sheets(I).Range(Rango).Activate
Workbooks(Nombre_Libro).Sheets(I).Range(Rango).Value = Rnd()

NOTA: La función RND que usas no es muy buena que digamos, si vas a realizar sorteos o quieres números realmente aleatorios deberás utilizar la función RANDOMIZE. De la ayuda de Excel "Si no utiliza la instrucción Randomize, la función Rnd (sin argumentos) utiliza el mismo número como valor de semilla la primera vez que se la invoca, usando después como valor de semilla el último número generado".
Un sistema "adecuado" sería que al iniciar la aplicación se activase el timer y cuando se pulse el botón de generar números se usase el valor del timer como "semilla".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar