Macro se detiene al abrir un segundo libro de Excel

Estoy trabajando en una macro que en determinado momento tiene que abrir otros libros. Para intentar explicarme mejor voy a nombrar a los diferentes libros "A", "B" y "C".

En un determinado momento, el libro "A", que está ejecutando una macro, solicita abrir el libro "B", trabaja en él y luego lo cierra. Esto lo hace sin problema.

Pero un poco más adelante, en el mismo "Sub", el libro "A" quiere abrir el libro "C" y al hacerlo, la macro se detiene. Pego el código que utilizo para abrir ambos libros:

Como veis, el libro "B" está protegido por contraseña. En cambio, el libro "C" no. Ambos están en la misma carpeta del servidor.

No entiendo porqué con el "C" se corta la macro. Ese libro no tiene ninguna macro que deba ejecutarse nada más abrir o algo así (sí que tiene una que se debe ejecutar antes de cerrar, pero es que no llega a ese punto).

Agradezco cualquier orientación que me podáis dar al respecto.

1 respuesta

Respuesta
1

Puedes poner todas tus macros.

¿O cómo abres el libro c?

¡Gracias Dante por la respuesta!

Disculpa por tardar tanto en contestar, pero me ha sido del todo imposible conectarme en todo este tiempo. He estado enfermo.

He descubierto que no es que la macro se detenga, sino que al cambiar de libro, los puntos de control que pongo en el código de la macro para que se pare en ellos se "borran", por lo que la macro se ejecuta completamente sin detenerse.

Como estaba haciendo pruebas, tenía comentadas todas las líneas que modificaban los archivos por lo que cuando la macro terminaba parecía que se había detenido cuando en realidad había corrido entera pero sin realizar ningún cambio.

Si alguna vez os pasa esto, he comprobado que los marcadores de "STOP" de la macro no se borran si justo después la orden que va después de la de abrir el nuevo libro de la orden de abrir libro (Workbooks.Open ruta_de_libro) tiene puesto uno de esos marcadores. Pero tiene que ser la línea inmediata posterior a abrir el libro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas