Problema al trabajar con libros desde vba

2 envíos / 0 nuevos
Último envío
Javier88
Imagen de Javier88
Offline
última acción: Hace 3 meses 1 semana
alta: 06/02/2018 - 09:13
Puntos: 25
Problema al trabajar con libros desde vba

Hola y gracias de antemano.

El problema que tengo es al manipular diferentes libros con vba.

Libro1, mediante una macro, abre Libro2 con la instrucción Workbooks.Open. Lo que necesito es que una macro que se ejecuta desde Libro2 al mismo tiempo en que este se abre, cierre Libro1 y lo elimine.

El problema es que cuando Libro2 cierra Libro1 se detiene la ejecucción del código y no pasa de ahí.
He probado a activar Libro2 con la instrucción Workbooks(Libro2.Name ).Activate antes de cerrar Libro1, pero sigue ocurriendo lo mismo.

He probado con las instrucciones Run y Call para ejecutar macros que se encuentran en distintos libros del que tienes seleccionado.

Call no funciona porque la macro que se tiene que ejecutar se encuentra en Libro2 pero se la llamaria desde Libro1.

Y Run si funciona pero surge el problema que he comentado.

Gracias.

Etiquetas: 

Cron
Imagen de Cron
Offline
última acción: Hace 4 días 5 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 10035
La pregunta es interesante, y

La pregunta es interesante, y se me está ocurriendo la manera.

Ejecutas el código en el Libro 1. El código abre el Libro 2 y termina su ejecución.

No puedes poner código en el Libro 2 que se ejecute al abrirse, porque no se va a lanzar. Si se está ejecutando un código (en este caso está terminando de ejecutarse el del Libro 1), no puede lanzarse otro código en paralelo.

Pero sí que puedes colocar el nombre del Libro 1 en algún lugar del Libro 2 (el nombre debe incluir la ruta y la extensión), y luego poner un código en el Libro 2 que se ejecute en algún evento (puedes probar en Activate o en SheetCalculate), lea el nombre del Libro 1 y lo elimine:

Kill(libro1)

Un saludo