Despues de desanclar un formulario Userform como hacer para ver excel de nuevo al cerrarlo?

Después de ulitizar "Application.Visible = False" para desanclar el Userform de la ventana excel como hago para cuando cierro el userform se abra excel de nuevo.

Por cierto, ¿hay alguna forma de minimizar el Userform cuando esta descanclado de excel?

Respuesta
1

Coloca esto en el evento Terminate del formulario

Private Sub UserForm_Terminate()
Application.Visible = True
End Sub

Mediante Apis, se puede poner un botón de minimizar al formulario, pásame tu correo y te mando el código para hacerlo.

Si te ha valido la respuesta.

Mejor, dejo aquí el código, para colocar los botones de Minimizar y Maximizar a un formulario Excel VBA.

Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Const WS_MINIMIZEBOX As Long = &H20000
Private Const WS_MAXIMIZEBOX As Long = &H10000
Private Const GWL_STYLE As Long = (-16)
Private Sub UserForm_Initialize()
    Dim lngMyHandle As Long, lngCurrentStyle As Long, lngNewStyle As Long
    lngMyHandle = FindWindow("THUNDERDFRAME", Me.Caption)
    lngCurrentStyle = GetWindowLong(lngMyHandle, GWL_STYLE)
    lngNewStyle = lngCurrentStyle Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
    SetWindowLong lngMyHandle, GWL_STYLE, lngNewStyle
End Sub

Si quieres que sólo esté activo el de minimizar, cambia esta línea:

lngNewStyle = lngCurrentStyle Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX

por esta:

lngNewStyle = lngCurrentStyle Or WS_MINIMIZEBOX 

Me sale un mensaje de que no puedo introducir texto... error de compilación...:(

Tienes colocado el código en el userform, ¿tal y cómo te muestro en esta imagen?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas