Saltar al contenido

Macro copia hoja en libro


Recommended Posts

publicado

Hola a todos!

Tengo un problema ya que no se como generar esta parte de la macro, por ejemplo si tengo un libro llamado Capital Federal y su unica hoja tambien se llama Capital Federal, y tengo una macro que genera hojas con el nombre las ciudades de la Argentina, necesito saber como hacer que de esa nueva hoja llamada Capital Federal busque el libro Capital Federal y agregue la hoja nueva SIN REEMPLAZAR LA HOJA YA EXISTENTE, se puede lograr esto? Aprecio mucho su aporte, ayuda u orientacion. Desde ya muchas gracias.

SAludos cordiales.

Gerardo A.

publicado

Hola, puedes subir un ejemplo para poder entenderte mucho mejor.

Una pregunta, esto esta dentro del mismo libro o son dos libros diferentes?

Sí es dentro del mismo libro puedes probar esto:

Sub Duplica_Hoja()

' Duplica la hoja al lado izquierdo de tu hoja "Capital Federal"

Sheets("Capital Federal").Select

Sheets("Capital Federal").Copy Before:=Sheets(1)

End Sub

Sub Duplica_Hoja()

' Duplica la hoja al lado derecho de la hoja "Capital Federal"

Sheets("Capital Federal").Select

Sheets("Capital Federal").Copy After:=Sheets(1)

End Sub

Sí es en otro libro:

Sub Copiar_Hoja_Libro()

' Copiar Hoja en otro libro

'Aqui seleccionamos tu libro "Capital deferal" y la hoja "Capital Federal"

Windows("Capital Federal.xls").Activate

Sheets("Capital Federal").Select

'Aquí Seleccionamos la hoja "Capital Federal", la copiamos y pegamos en el "Libro1"

Sheets("Capital Federal").Copy After:=Workbooks("Libro1.xlsm").Sheets(1)

'Regresamos a el libro "Capital Fedeeral" y nos colocamos en la celda "A1"

Windows("Capital Federal.xls").Activate

Range("A1").Select

End Sub

Ojo, sí lo que quieres es copiar la hoja de un libro a otro, debes tener abiertos ambos libros para poder ejecutar la macro.

una forma que podrías hacer es abrir ambos libros cuando abres uno de ellos o abrir el segundo libro con un botón desde la hoja "Capital Federal".

Espero haberte podido ayudar, suerte! :triumphant:

publicado

Ebalams che! muchas gracias, esta groso esto, te explico, son libros diferentes, lo que trato de hacer es si mi libro se llama Capital Federal hoja Capital Federal, agregar la hoja nueva Capital Federal a ese libro, es decir tengo 100 libros con nombres diferentes con una sola hoja, el libro se llama igual que la hoja... anexo archivo... Por ejemplo tengo mi libro MACRO donde tengo 100 hojas no siempre son el mismo numero de hojas... estas 100 hojas tienen nombres diferentes, en una carpeta tengo 100 libros con diferente nombre (la hoja y el libro se llama igual) entonces yo quiero que la macro busque la hoja1(TUCUMAN) del libro MACRO en la carpeta donde esta todos los libros y si encuentra el libro entonces abra el libro copie ese hoja nueva TUCUMAN y asi se vaya por todas.

EJEMPLO.zip

publicado

Hola de nuevo.

Creo que ese ya sería otro tema porque aunque va relacionado requiere de otras cosas, ya que esta pidiendo otro tipo de condiciones... de entrada para copiar la hoja de tu libro "Capital Federal" a otro libro, necesitas tener abierto primero ese libro y como en tu caso son como 100 libros me parece que esta bastante complicado.

Lo que se me ocurre es crear un catálogo con las "claves, nombres (Libro y hoja) y rutas" de cada libro, para que en una celda de tu hoja "Capital Federal" hagas referencia en una lista desplegable a que libro y hoja deseas ir, pero... me parece que en esto no te puedo ayudar, porque no me se el código que haga referencia a una ruta dentro de una celda (Esto me hace falta nadamás).

Otra forma que se me ocurre, es que abras con una macro el explorador de archivos y a través de este escojas el libro que necesitas y acoples la macro que te pase más arriba.

Deja sigo probando y si encuentro la solución te la envío.

publicado

Gracias por seguir ayudandome, si che yo se que es re dificil lo que necesito, aunque me gusta tu idea pero espero se pueda optimizar ya que seria un quilombo estar abriendo y cerrando libros.

Si alguien mas me puede ayudar re agradecido.

Saludos.

publicado

Realmente no se me hace que sea tan difícil, lo que pasa es que no me se el código que pueda hacer lo que te explico... de hecho no se sí exista!

Estamos en contacto.

publicado

Interesante tema, tengo 2 consultas

1.- A que se debe que en excel se debe copiar la informacion con el documento abierto?

2.- Quizas el modo para copiar una cantidad tan grande 100 archivos:

A.- Abrir el documento destino

B.- Copiar la info en el documento destino

C.- Verificar que copio toda la info y cerrar el documento destino

D.- Abrir un nuevo documento destino

Quizas puede ser engoroso, pero es una posible solucion.

Saludos

publicado

Hola Volandri.

Te voy a responder de acuerdo a lo que yo se y tengo entendido.

Pregunta 1. Porque lo que se desea hacer, es sólo copiar una hoja y para poder ejecutar ese proceso es necesario tener abierto el archivo de origen y para poder ejecutar el proceso de pegar la hoja es necesario tener abierto el archivo destino, es decir, sí sólo hicieras una copia o un remplazo del libro completo esto no sería posible, porque finalmente ambos libros son iguales, pero en este tema lo único que se desea es copiar y agregar una hoja al libro destino sin alterar las demás hojas en lo absoluto. Si esto fuera así, solo se haría una macro para abrir el explorador de archivos, buscar la ruta del libro de destino y remplazar el archivo.

Pregunta 2. Eso precisamente es lo que hace la segunda macro que puse (Copia hoja de origen y pega a destino sin alterar las demás hojas y de forma opcional puede cerrar destino, pero este solo es de un archivo especifico a otro archivo especifico), pero lo que quiere Gerardo Arevalo, es que desde el archivo origen dentro de la misma hoja de excel, con una referencia en una celda, busque un archivo dentro de una carpeta donde hay 100 archivos diferentes y encuentre el archivo de la referencia de la celda y agregue la hoja del archivo origen al de destino sin alterar lo que ya tiene... espero haberme explicado bien.

La verdad se me hace bastante complicado, yo no se que haya eso en Excel, pero si lo hay espero poder verlo!!!

Suerte!

publicado
Sí es en otro libro:

Sub Copiar_Hoja_Libro()

' Copiar Hoja en otro libro

'Aqui seleccionamos tu libro "Capital deferal" y la hoja "Capital Federal"

Windows("Capital Federal.xls").Activate

Sheets("Capital Federal").Select

'Aquí Seleccionamos la hoja "Capital Federal", la copiamos y pegamos en el "Libro1"

Sheets("Capital Federal").Copy After:=Workbooks("Libro1.xlsm").Sheets(1)

'Regresamos a el libro "Capital Fedeeral" y nos colocamos en la celda "A1"

Windows("Capital Federal.xls").Activate

Range("A1").Select

End Sub

Ojo, sí lo que quieres es copiar la hoja de un libro a otro, debes tener abiertos ambos libros para poder ejecutar la macro.

una forma que podrías hacer es abrir ambos libros cuando abres uno de ellos o abrir el segundo libro con un botón desde la hoja "Capital Federal".

Espero haberte podido ayudar, suerte! :triumphant:

Estimado, probe tu formula, lo hice para 15 archivos distintos en excel y me copia en 15 archivos distintas, voy a colocar un extracto con 2 planillas, total es un copy/paste de tu formula:

Private Sub CommandButton2_Click()

Workbooks.Open "prueba.xls"

ActiveWorkbook.RunAutoMacros xlAutoOpen

Windows("vendor200.xls").Activate

Sheets("sheet2").Select

Sheets("sheet2").Copy After:=Workbooks("prueba.xls").Sheets(1)

Workbooks("prueba.xls").Close SaveChanges:=True

Workbooks.Open "prueba1.xls"

ActiveWorkbook.RunAutoMacros xlAutoOpen

Windows("vendor200.xls").Activate

Sheets("sheet3").Select

Sheets("sheet3").Copy After:=Workbooks("prueba1.xls").Sheets(1)

Workbooks("prueba1.xls").Close SaveChanges:=True

End Sub

Mi pregunta es ahora:

Ahora en prueba.xls(planilla destino) tengo una planilla llamada "ag" la cual tengo datos predeterminados, como puedo hacer que la informacion de sheet2 de vendor200, se vaya a esa planilla (Sobrescribiendo la informacion que existe en ag)?

Saludos

publicado

Hola, tengo un ejemplo que seguramente te va a resolver tu duda, en este ejemplo hago una copia de una hoja a otra dentro del mismo libro y también de un libro a otro. En ambos casos con opción a seleccionar celdas o rangos específicos.

Cualquier duda, ya sabes estamos en contacto.

Suerte!!!

Origen.zip

publicado

Hola Gerardo, me parece que ya tengo la respuesta a tu problema.

Algo similar me pidió otro amigo y por suerte dí con la solución a tu problema.

He encontrado un código que hace falta y hace precisamente lo que necesitas: "buscar y abrir un libro, desde una celda para después copiar la hoja del archivo "Origen" (Capitales federales) a el libro "Destino" (Capitales).

Ejemplo:

La macro es la siguiente:

'Si los archivos que buscamos se encuentran dentro de una misma carpeta y en una ruta constante_ Celda de busqueda C6

Sub Ir_Archivo()

'Seleccionamos la ruta, la carpeta y la celda, donde vamos a poner el nombre del archivo que vamos a abrir

Workbooks.Open "C:\Users\Desktop\Tu carpeta de busqueda\" & Worksheets("hoja1").Range("C6")

End Sub

En el archivo sólo debes cambiar la ruta que va a la carpeta de tus 100 archivos y cambiar los conceptos de la columna de referencia de búsqueda (Los nombres de tus archivos de destino).

Adaptas el código que te envié anteriormente y listo.

Si tienes problemas estamos en contacto, suerte!!!

abrir libro desde una celda.rar

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.