Copiar a un libro información de varias hojas

Hola espero me puedan ayudar
En un libro tengo información diaria, por lo tanto, son 30 hojas. Necesito pasar todos los datos a otro libro en una sola hoja, quedando la información diaria en una fila
dia   info1   info2  info3 .....
1
2
3
.
.
.
30
Hice una macro pero solo para un día, me gustaría saber como hago para que se copien en las siguientes filas la información de los otros días ( resto de las hojas)

1 Respuesta

Respuesta
1
Creaté unas variables, una para las hojas y otra para la información, trabaja con ellas haciendo solo una macro y después intercalas Un Do While... Loop
Si necesitas más aclaración me lo dices.
Hola Julio gracias por contestarme ... recién estoy aprendiendo a utilizar las macros, no entendí lo que me dijiste, ¿podrías ser más detallado? Por favor
Muchas gracias!
Como ponías que habías echo una macro entendí que tendrías un nivel suficiente para esta pequeña instrucción, pero no importa te dejo una página en la encontraras todo lo que necesitas leyendo un poco y así aprenderás muchísimo. Si necesitas algo en especial que no encuentres me lo dices.
Tienes que tener los datos de tus hojas en las mismas celdas para que no te resulte dificil, nos situamos en la hoja 1 en la celda de tu primer dato y ponemos dat1 = ActiveCell.Value, ya tenemos recogido el dato e una variable dat1 ahora nos desplazamos a la siguiente celda donde tienes otro dato a copiar, si esta en la celda de al lado a la derecha decimos dat2 = ActiveCell.Offset(0,1).Value, significa que el valor que tiene que tener copiado la variable dat 2 es el que haya en la misma fila (valor 0) una celda a la derecha(valor 1) y así te vas desplanzando por tu hoja hasta tener recogidos todos los datos, ahora nos vamos a la hoja donde quieres pegar tus datos Sheets("Hoja5").Select nos vamos a la hoja 5
Range("B2").Value = dat1
Range("C2").Value = dat2..... y así hasta terminar todos tus datos
Te sitúas en A2 y escribes 1 y pulsas ejecutar ahora vuelves a situarte en la celda que has escrito el 1 pones el cursor en el lado derecho abajo hasta que se convierta en una cruz (+) pinchas y al mismo tiempo pulsas la tecla Ctrl y sin soltarlo arrastras hacia abajo hasta la celda A32, se te numerá solo.
Vale ahora la macro, vamos a suponer que tienes que recoger 4 datos para copiar en tu hoja resumen, que tus hojas se llaman 1,2,3... 30 y que los datos están en A1 hasta A4
Sub Copiar()
Do While ActiveCell = ""
Nombhoja = InputBox("¿Que hoja quieres copiar?") ' elegimos la 1
Sheets(Nombhoja).Select
dat1 = Range("A1").Value
dat2 = Range("A2"). Value
dat3 = Range("A3").Value
dat4 =Range("A4").Value
Sheets("RESUMEN").Select
Range("B2").Select
Do While Not IsEmpty(ActiveCell.Offset(0, 0))
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = dat1
ActiveCell.Offset(0,1).Value = dat2
ActiveCell.Offset(0,2).Value = dat3
ActiveCell.Offset(0,3).Value = dat4
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Espero que te sirva
>Un saludo
>Julio
Hola Julio gracias por la explicación, tengo una pregunta en vez de estar seleccionando cada celda y poner data1, data2... etc, podría hacer otra macro donde copie y pegue inmediatamente los valores ya que tengo más de 180 datos en cada hoja que debo copiar y no todos están en la misma fila, entonces creo que seria complicado hacer eso de las data y estar escribiendo las coordenadas que tienen con respecto al primer dato.
Me gustaría saber si puedo grabar una macro e ir copiando los datos y luego ir pegándolos en una fila en la otra hoja( del otro libro) y después que se repita para el resto de los días y se avya pegando en la siguiente fila
Gracias por tu ayuda
Saludos
Efectivamente puedes hacerlo, yo te hice esta por desconocer los datos que van a copiarse (su rango) pero como tú sí los sabes cambia los activeCell. Offset.(X, Y). Value por Range("B4"). Value o el rango que sea, si tienes todos los datos en las mismas celdas pero solo cambia la hoja pon todos y cambias de hoja Sheets("Hoja5"). Select
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas