Como logro que el formulario quede abierto?

Se me presenta un problema que supongo no es dificil de resolver, pero por mas que intento no logro solucionarlo, al abrir un Excel en su inicio se despliega un Formulario (Ubicado en el Archivo Administración) con botones, donde accedo a diferentes tareas, una de ellas me lleva a un segundo formulario (Ubicado en archivo llamado Cuentas), utilizo:

Private Sub CommandButton6_Click()
Dim ArchivoComplementario As String
Dim Ruta As String
Dim FSO As Variant
ArchivoComplementario = "Cuentas.xlsm"
Ruta = ActiveWorkbook.Path
Set FSO = CreateObject("Scripting.FileSystemObject")
    If FSO.FileExists(Ruta & "\" & ArchivoComplementario) Then
    Workbooks.Open Filename:=Ruta & "\" & ArchivoComplementario
    Else
         MsgBox (Chr(13) + "     El archivo """ & ArchivoComplementario & """ no existe, o" & _
        Chr(13) + "     no se encuentra en la carpeta donde debería estar." & _
        Chr(13) + Chr(13) + "     La ruta donde debería hallarse es:" & _
        Chr(13) + "     " & ActiveWorkbook.Path & "\" & "     " & _
        Chr(13) + Chr(13)), vbOKOnly, " FICHERO NO ENCONTRADO"
    End If
Set FSO = Nothing
Application.Run "Cuentas.xlsm!MuestraFormulario"
End Sub

Todo bien, el problema es cuando quiero cerrar el formulario ubicado en Cuentas y su archivo correspondiente, utilizo esto ubicado en Archivo Cuentas:

Private Sub CommandButton3_Click()
Application.Run "Administración.xlsm!CerrarCuentas"
Unload Me

End Sub

y luego esto ubicado en un Modulo de archivo Administración:

Private Sub CerrarCuentas()
Workbooks("Cuentas.xlsm").Close SaveChanges:=True
SistemaContable.Show
End Sub

Entonces se cierre el archivo y su formulario me refiero a "Cuentas" lo cual ocurre; Que pasa!, lo deseado seria que quede en la pantalla el primer formulario abierto, sin embargo se cierran todos los formularios y quedo en la planilla de Excel, a pesar como verán haber solicitado con el código correspondiente la apertura con "SistemaContable.Show"

Respuesta
1

En esta macro:

Private Sub CommandButton3_Click()
Application. Run "Administración.xlsm!CerrarCuentas"
Unload Me

End Sub

En la línea con negritas se ejecuta el cierre del libro y también el llamado a un Userform... que luego con la instrucción Unload me lo estás cerrando.

Intentá  de este modo: quitale la línea del Show.

Y en la macro del botón 3, en lugar de cerrar (¿qué intentas cerrar aquí? ) Colocá la llamada al uf:

Private Sub CommandButton3_Click()
Application.Run "Administración.xlsm!CerrarCuentas"
SistemaContable.Show

End Sub

Probalo y si todo responde según lo esperado no olvides valorar la respuesta para darla por cerrada... sino comenta.

¡Gracias! Elsa, en realidad con lo de Dante solucione el problema, con todos los aportes que recibo, un novato como yo puede avanzar.

Gracias nuevamente.

Saludos

Lo que pasa es que el foro tiene cierta demora estos días y no vi que tuviera respuesta tu consulta, por eso te respondí. Bueno, mejor 2 que ninguna ;)

Sdos!

1 respuesta más de otro experto

Respuesta
1

H o l a: Cuando ejecutas el Run a "Cuentas.xlsm!MuestraFormulario", les estás pasando el control de la macro a al archivo Cuentas, entonces cuando cierras el archivo Cuentas, la macro termina. Lo más sencillo, si vas a cerrar el archivo cuentas lo hagas desde el mismo archivo cuentas.


Quedaría así:

Primero, a los 2 formularios les cambias la propiedad ShowModal a False


Después, borra la macro CerrarCuentas o simplemente comenta las líneas:

Sub CerrarCuentas()
'Workbooks("Cuentas.xlsm").Close SaveChanges:=True
'SistemaContable.Show
End Sub

Para cerrar el formulario cuentas, debe quedar así:

Private Sub CommandButton3_Click()
    'Application.Run "Administración.xlsm!CerrarCuentas"
    'Unload Me
    Workbooks("Cuentas.xlsm").Close SaveChanges:=True
End Sub

Listo, el archivo cuentas se cierra y el control regresa al archivo Administración.


'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

¡Gracias! Dante, excelente para un novato como yo, lo de pasar la macro era por no saber como hacer las cosas, fue una de tantas pruebas, lo nuevo para mi que todavía no sabia es lo de modal y no modal, ya lo googlie y para conocer bien el concepto y todo anda de maravillas.

Una vez mas gracia por tu solidaridad.

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas