Copiar datos de una hoja en varias hojas

Necesito un favor de Uds., el favor en cuestión es el siguiente, tengo en una hoja de excel un análisis de precio, su área de impresión es a1:o70, ahora bien; necesito me ayuden en una macro que me copie esa hoja tal cual como esta en varias hojas que tiene el libro, de tal forma que no me cambien nada en la copia ni me cambie el nombre de la pestaña

Respuesta
1

Te pregunto, necesitas que la hoja se pegue solo valores y elimine las formulas que podrías tener, o necesitas que se pegue lo que esta como valores, como valores y lo que esta como formula como formula.?

Buenos días, lo que quiero es que se copie todo igual, tanto valores como formula, o sea no perder nada, por ejemplo como es un análisis de precio, esta hoja esta vinculada con otras hojas, y no se puede perder esto, y ademas que al copiarla en la pestaña siguiente no me cambie el nombre de la pestaña, y si lo cambia colocar el numero siguiente de la copia, es decir el análisis en la pestaña es el numero 100, y yo quiero copiarlo a otra hoja, de tal manera que haga el correlativo, o sea ya la copia seria en la pestaña 101 y asi sucesivamente tantas veces como quiera copiarlo, y a su vez no cambie nada de la hoja origen, me explico.

Agradezco tu pronta respuesta, no se si es posible hacer esto, pero me evitaría como decimos aquí "irme a píe".

Gracias de antemano

Rafaelmvt

No termino de entender todas tus necesidades, pero empecemos:

Este código copia la información de la hoja en que estés posesionado y te pregunta cuanta copias quieres hacer, es macro copiara en las hojas o pestañas siguientes la información que ha copiado, y para saber cuantas copias tiene que hacer te hace una pregunta y tu debes indicar el número

Luego al terminar regresa a la hoja original y listo. Si es lo que necesitas finaliza la pregunta, o si tienes alguna duda me escribes:

Sub Copia_pega()
nombre = ActiveSheet.Name
a = InputBox("En cuantas hojas desea pegar la información Origen")
Cells.Select
Selection.Copy
For k = 1 To a
ActiveSheet.Next.Select
ActiveSheet.Paste
Next k
Sheets(nombre).Select
End Sub

Buenos días, cuando me hace la pregunta, para colocar el numero de copias esto es de acuerdo al numero de hojas que tenga el libro? o la macro me crea las hojas? porque si solo tengo la hoja origen no funciona, estoy en lo cierto?, otra cosa la hoja origen tiene un rango de impresión como te dije arriba,que es a1:070, este rango no lo puede hacer la macro? de tal forma que la copia sea igual al origen?

me explico si las columnas tienen por decirte algo, un ancho diferentes, y las filas también, pueden salir igual? te digo esto porque en la hoja origen hay celdas combinadas, y también hay cuadros de listas, y hay formulas, también la hoja origen se relaciona con otras hojas del libro, esto es lo que yo quiero que cuando se copie la hoja origen no se pierda, porque veo que tu macro sombrea toda la hoja, desde a1 hasta el infinito y ahi se pierden todos los formatos de la hoja origen, me explico?

rafaelmvt

La macro no crea hojas nuevas ni cuenta cuentas tiene(esto lo podría hacer, solo debes indicar si quieres que lo haga), efectivamente tu le indicas cuantas copias tiene que hacer sobre las hojas ya creadas

Lo de la impresión ya esta resuelto, te coloque unos códigos que condicionan ese rango de impresión.

El tema del ancho de filas y columnas, lo de las celdas combinadas y los cuadros de lista como estoy haciendo una copia global me copia todo, no debería perderse nada, he probado la macro y funciona.

Prueba con estos códigos y me avisas.

Sub copia()
nombre = ActiveSheet.Name
a = InputBox("En cuantas hojas desea pegar la información Origen")
Cells.Select
Selection.Copy
For k = 1 To a
ActiveSheet.Next.Select
Range("A1").Select
ActiveSheet.Paste
ActiveSheet.PageSetup.PrintArea = "$A$1:$O$70"
Next k
Sheets(nombre).Select
Application.CutCopyMode = False
End Sub

Ojo si necesitas que la macro cree las hojas nuevas o que cuente cuantas hojas tiene el libro también lo puede hacer, pero no se si es lo que necesitas.?

Buenos días, la corrí y funciona bien, pero eso que me dices al final es exactamente lo que quiero, que no se pierda nada en la copia, (que ya en la macro esta echo), pero también que me cuneta las hojas que hay (que no es muy importante) y me cree las hojas nuevas (esto si es importante), por ejemplo la copia empieza en la hoja original 100, de ahi en adelante cuando haga la copia, me le coloque a la hoja 101,102,103,.104, etc tantas veces como el numero de copia que le dije al principio, me entiendes, de todo lo demás esta perfecta

Muchas gracias, si le puedes agregar esto seria fenomenal.

Rafaelmvt

Ok, entonces los códigos son otros, esta sería la rutina, pruébalas y si funciona no olvides finalizar la pregunta.

Sub copia()
Nombre = ActiveSheet.Name
a = InputBox("En cuantas hojas desea pegar la información Origen")
Nombre_2 = Nombre + 1
For k = 1 To a
Sheets("100").Copy Before:=Sheets(1)
ActiveSheet.Name = Nombre_2
ActiveSheet.PageSetup.PrintArea = "$A$1:$O$70"
Nombre_2 = Nombre_2 + 1
Next k
Sheets(Nombre).Select
Application.CutCopyMode = False
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas