Macro para heredar macros, formularios, funciones y otras de archivo padre

DAM, otra vez acudo a usted para plantear mi problema:
Tengo un libro principal llamado "Libro1" desde donde abro otro archivo de excel, ese segundo archivo llamado "Libro2" que genera una serie de tareas; entre ellas crea automáticamente varias hojas con fundamento a varios nombres registrados en un rango de celdas del "libro2" y concluye creando libros nuevos, uno por cada una de las hojas, ejemplo "Hoja1", "Hoja2", "Hoja3" y así sucesivamente, hasta n número de hojas y n número de libros.. Hasta aquí todo está bien
En el "Libro1" tengo una serie de macros, funciones, formularios que necesito que se guarden automáticamente en cada uno de los libros creados desde el "Libro2" para que cada uno de los nuevos libros pueda ser trabajados de manera óptima.
Espero haber sido claro y de antemano le agradezco infinitamente por la ayuda prestada.

1 Respuesta

Respuesta
1

Así de primera instancia, se me ocurre que :

- Guardes el libro1 como libro2a, con esto ya pasaste las macros,

- Después del libro2 le copias las hojas al libro2a,

- Entonces ya tienes en el libro2a las hojas del libro2 y las macros del libro1,

- Por último trabajarías sobre el libro2a para generar las siguientes hojas y libros.

DAM, muchas gracias por tu respuesta, pero por favor que macro me hace esa tarea?

Saludos.

¿Pero así como te lo describí te funcionaría?

Pon esta macro en tu libro1

Sub Macro1()
'Por.DAM
wpath = ThisWorkbook.Path
ActiveWorkbook.SaveAs _
Filename:=wpath & "\Libro2a.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, _
CreateBackup:=False
Workbooks.Open _
Filename:=wpath & "\Libro2.xlsm"
For Each h In Sheets
h.Copy After:=Workbooks("Libro2a.xlsm").Sheets(1)
Next
End Sub

Prueba y me comentas

DAM, al ejecutar la Macro me sale error pues manifiesta que no se a definido la variable y me selecciona "wpath"

Al intentar con otro archivo y ejecutar la misma macro me da error 1004 en tiempo de ejecución y que no se puede encontrar el archivo "Libro2.xlsm" y al dar Depurar me marca lo siguiente en Amarillo:

CreateBackup:=False
Workbooks.Open _
Filename:=wpath & "\Libro2.xlsm"
For Each h In Sheets

Pero me dirijo al Directorio donde tengo guardada la matriz si se a creado y efectivamente lo hace, pero no se en que radica la diferencia.

Muchas Gracias

Prueba con esta, tus libros: libro1 y libro2 deberán estar en la misma carpeta

Sub Macro1()
'Por.DAM
Dim wpath As String
wpath = ThisWorkbook.Path
    ActiveWorkbook.SaveAs _
        Filename:=wpath & "\Libro2a.xlsm", _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, _
        CreateBackup:=False
    Workbooks.Open _
        Filename:=wpath & "\Libro2.xlsx"
    For Each h In Sheets
        h.Copy After:=Workbooks("Libro2a.xlsm").Sheets(1)
    Next
End Sub

DAM, muchas gracias, ya funciona, aunque le declaré la variable "h" As Variant, funciona pero no es lo que necesito,

Solamente del "libro1" que tiene 5 hojas se deben crear 5 libros independientes pero con los elementos descritos anteriormente Formulas y otras, por ello creo que el libro 2 sobra y no es unir dos libros en uno, sino el inverso de un libro dividirlo en dos libros nuevos tomando el nombre de la hoja.

Así como me indicas crea un solo archivo con Diez hojas y lo que necesito es mas o menos tarea inversa.

Ahora entendí menos.

Si copias el libro se copia con todo y macros.

Tranquilo que estoy casi igual,

Tengo un solo libro llamado "consolidado.xls" compuesto por 5 hojas y en el mismo libro cuenta con una serie de Formularios, Formulas y Macros. Las hojas son:

1. Ingresos

2. Egresos

3. Inventarios

4. Proveedores

5. Clientes

Necesito crear 5 libros diferentes que se llamarán respectivamente así:

1. Ingresos.xls
2. Egresos.xls
3. Inventarios.xls
4. Proveedores.xls
5. Clientes.xls

El problema radica principalmente en que al crear cada uno de los Libros ellos no quedan con las funcionalidades deseadas.

Espero que te haya quedado más claro.

Cada uno de los 5 libros creados deben contener solamente una hoja.

Saludos

Te anexo un libro con una macro que te hace los 5 libros con una sola hoja.

En la hoja van unas indicaciones

https://www.dropbox.com/s/h86nx36nwatxhsq/macro.xlsm

Saludos. DAM

No olvides finalizar la pregunta.

Dam, muchas gracias porque tienes un verdadero interés en ayudarme, pero no he podido probarlo, puesto que la extensión del archivo "consolidado" es xls y tu macro me indica error al no encontrar el archivo "consolidado.xlsx" si intento guardar mi archivo con extensión 2010 no me lo permite porque contiene macros, el mismo error me da si lo guardo como .xlsm y busco en tu código y no veo donde cambiarle esa extensión, pues en el mismo solo se hace referencia al nombre y no a la extensión.

Por favor que línea o líneas debo cambiar?

Saludos.

¿Qué versión de excel tienes?

¿Qué error te pone?

¿Dale depurar y dime qué línea te pone en amarillo?

DAm, acabo de enviarte un correo con la captura de lo que me pides y unos comentarios al respecto, muchas gracias

Saludos.

Todas las macros que te entregué funcionan, pero si no me dices los datos completos desde el principio, asumo que tú harás las adaptaciones debidas.

Empezaste diciendo que se llamaban libro1 y libro2, y hojas. Después le pusiste un nombre, ahora resulta que son otro nombre que son otras hojas etc.

Te pido que finalices esta pregunta por la ayuda que ya te brindé.

Organiza bien tu información y haces la pregunta adecuada.

DAM muchas gracias nuevamente; pero mi inconveniente principal con tu macro no tiene nada que ver con los nombres sino con la extensión, pues debo guardar con extensión ."xls" o ".XLSM" y el error es que no me encuentra el archivo con extensión ".XLSX" que eso implicaría desechar las Macros y efectivamente si se encuentran en la misma carpeta.

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas