Copiar y Pegar en excel

Hola, en un libro de excel tengo 5 hojas (Hoja1, Hoja2,..) con un solo formato en la celda A1 "fecha", A2 " Producto", A3 "Cantidad", al final de la semana tengo que copiar cada uno de estos datos en una hoja única (hoja6) que tiene el mismo formato "fecha"..
¿Cómo podría hacer para que me copie en la Hoja6, todos los elementos de las anteriores hojas (Hoja1, Hoja2, Hoja3, Hoja4, Hoja5)... En forma vertical..?
Gracias!

1 respuesta

Respuesta
1
Probá si esta rutina resuelve tu problema.
Asumo que las hojas desde Hoja1 a Hoja5 están en ese orden, por eso utilicé la instrucción con Next, sino habrá que ajustar la rutina.
Si el rango no es el mismo en todas las hojas, tendrás que utilizar expresiones con End(xldown) y End(xlright) para encontrar los límites hacia abajo y derecha. Cualquier duda me volvés a escribir.
Sub copiahojas()
Sheets("Hoja1").Select
For i = 1 To 5
fila = Sheets("Hoja6").Range("A65536").End(xlUp).Row + 1
ActiveSheet.Range("A1:C10").Copy Destination:=Sheets("Hoja6").Cells(fila, 1)
ActiveSheet.Next.Select
Next i
End Sub
http://es.geocities.com/lacibelesdepunilla/manuales
Hola Elsa, disculpa el tardío de mi respuesta,
he estado probando y lo trate de acomodar pero no se lo que pasa
Sub copiahojas()
Sheets("Lunes").Select
For i = 1 To 5
fila = Sheets("diario").Range("A65536").End(xlUp).Row + 1
ActiveSheet.Range("C9:H20000").Copy Destination:=Sheets("diario").Cells(fila, 3)
ActiveSheet.Next.Select
Next i
End Sub
Bueno en principio tuve que cambiar los nombres de las sheets hoja1, hoja2 por lunes, martes .. por que es un diario de ventas contable, y cuando copia no lo pega en el rango he tratado de variarlo pero no sale nada ... te explico, de las sheets lunes, martes, miércoles debo seleccionar la celda C9:C2000, E9:E2000, H9:K2000.. y pegarlo en la hoja "totalweek" rango de la C9: G8000 adicionalmente tengo una sheets de "portada" que no me debe copiar..
Se que es mucho los cambios, y he tardado en responderte cuanto lo siento, pero si me puedes ayudar te lo estaré agradecido, por que tratado de hacerlo yo mismo y no ha funcionado..
Agradecido
Tu rutina dice: sheets("diario") y tu aclaración de consulta, dice hoja "totalweek"... controlá esto porque la rutina se vé bien.
Si el problema persiste no te demores tanto en escribirme, que se pierde el hilo de la consulta
Hola Elsa, disculpa la demora... muchas gracias por tu consejo... he revisado lo del nombre de la pestaña y tienes razón me equivoque con el nombre... pero aun así me da error...
Sub copiahojas()
Sheets("Lunes").Select
For i = 1 To 5
fila = Sheets("totalweek").Range("B9:A65536").End(xlUp).Row + 1
ActiveSheet.Range("C9:F11").Copy Destination:=Sheets("totalweek").Cells(9, 2)
ActiveSheet.Next.Select
Next i
End Sub
Cuando ejecuto la macro, no me trae los valores de los campos, pero si noto que me trae las fórmulas,... lo del rango C9:F11 de la pestaña Lunes son celdas con listas de validaciones donde elijo las ciudades, y una celda con formato fecha dd-mm-yyyy, no se si eso tenga algo que ver...
Así mismo veo que no me trae los datos ni del martes, miércoles, ni de las demás pestañas..
Por favor si me puedes ayudar te lo agradeceré muchísimo
Enviame tu libro para que lo revise. El correo está en mi sitio.
Muchas gracias por su ayuda Sra. Elsa... ya le envíe el archivo excel..
Me pregunto porqué cambiaste la rutina del 19/06 por la otra del día 23/06, en las siguientes líneas :
1 - fila = Sheets(...).Range("A65539")... y ahora aparece como Range("B65539:A9")
2 - Activesheet... Copy Destination:=Sheets(...).Cells(fila, 3) y ahora aparece como Cells(9,2)
Solo tenías que reemplazar el nombre de tu libro... Si copiás siempre en la fila 9 un dato te tapa al otro, por eso utilizamos la variable fila que se incrementa luego de cada copia.
Aquí queda la rutina ajustada según tu libro que te lo estoy enviando.
Sub copiahojas()
Sheets("Lunes").Select
'acotando la variable a 5 no lo repetirá para la hoja portada que es posterior.
For i = 1 To 5
'se busca la primer fila libre considerando la col B
fila = Sheets("totalweek").Range("B65536").End(xlUp).Row + 1
'se copia en esa fila y a partir de col B (2)
ActiveSheet.Range("C7:I20").Copy Destination:=Sheets("totalweek").Cells(fila, 2)
'se pasa a la hoja siguiente y repite el bucle
ActiveSheet.Next.Select
Next i
End Sub
Saludos
Elsa
Tus mejores opciones en manuales de Macros, desde:
http://es.geocities.com/lacibelesdepunilla
Sra. Elsa
Muchísimas gracias por toda la ayuda que me ha brindado. Usted es simplemente excelente!, he aprendido poco a poco con su ayuda, aunque como se puede dar cuenta he sido bastante torpe, nuevamente muchísimas gracias !
Saludos,
Love

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas