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)
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