No funciona auto open en excel llamando desde otro libro

Tengo un libro de excel 2010 habilitado para macros (llamado Organizador.xlsm) que, mediante la función Workbooks. Open abre otro libro excel también habilitado para macros. Este otro (llamado Cronograma.xlsm) tiene un un Auto_Open que funciona perfectamente bien cuando abro el libro manualmente (es decir, haciendo doble click sobre el archivo), pero cuando se abre mediante código, a través del otro libro (Organizador.xlsm), el Auto_Open no se ejecuta.

Curiosamente, al principio, cuando creé ambos libros estas acciones funcionaban correctamente. Luego le agregué código al primero (al Organizador.xlsm) para que posteriormente se cierre este automáticamente y, a partir de ese momento, dejó de funcionar el Auto_Open de Cronograma.xlsm. Probé de otras formas hasta que finalmente borré lo que le había agregado y, aún así, sigue sin funcionar.

¿Se abra cambiado alguna configuración de Excel? ¿Puedo hacer algo para forzar el funcionamiento del Auto_Open? Será que no estaré teniendo en cuenta algo que, quizá, ¿pude haber modificado yo mismo y ahora no me doy cuenta?

Una cosa más, por si puede servir de algo: el código se efectúa mediante un botón en el formulario del primero y lo que hace el segundo archivo en su Auto_Open es, también, abrir otro formulario.

Bien.

1 respuesta

Respuesta
1

Sería de gran ayuda revisar el código que utilizas en ambos libros para ver como llamas ambos eventos open, quizás el problema solo radique en un movimiento de las lineas de código.

Si puedes escribe el código que utilizas en cada libro para abrirlos y donde estas poniendo esos códigos.

Antes que nada, muchas gracias por la atención y perdón por la demora en contestar.

Este es el código que se ejecuta para que el botón del userform del primer libro abra a Cronograma.xlsm:

Private Function ruta(libro As String) As String
     ruta = ThisWorkbook.Path & "\Programas\" & libro & ".xlsm"
End Function
Private Sub Abrir(libro As String)
     Workbooks.Open (ruta(libro))
End Sub
Private Sub Cronograma_Click()
     Abrir "Cronograma"
End Sub

Uso una function (ruta) y una sub (Abrir) porque estas instrucciones las vuelvo a utilizar en otros botones para abrir, de la misma manera, otros libros.

Este es el Auto_Open que debiera ejecutarse al abrir Cronograma.xlsm (lo tengo dentro del objeto Workbook del libro citado)

Option Explicit
Private Sub Workbook_Open()
    MenúCronograma.Show 0
End Sub

Siendo MenúCronograma el Userform que se debe abrir con el programa.

Por si sirviera de algo, dejo también el Auto_Open del primer libro (Organizador.xlsm):

Option Explicit
Private Sub Workbook_Open()
     MenúPrincipal.Show 0
End Sub

Siendo MenúPrincipal el userform donde está el botón que ejecuta el código expuesto al principio.

Nuevamente, muchas gracias. Saludos.

Espero aun poder ayudarte, mencionas que el segundo libro que deseas abrir se llama Cronograma.xlsm, en tu código del primer libro, tienes este código


ruta = ThisWorkbook.Path & "\Programas\" & libro & ".xlsm"


Al concatenar el nombre del libro que quieres abrí dejaste el nombre como "libro", cuando debería ser Cronograma, pienso que ese es el problema del asunto si así no fuera, por que no intentas poner una ruta completa en vez del Path, que como sabemos te da la ubicación del primer libro, trata de cambiar la ubicación de tu segundo libro, junto al primer libro para ver si lo abre, o con una sencilla ruta como C:\"TU LIBRO"

Con eso comprobaras cual es el problema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas