Minimizar UserForm al abrir un archivo Excel

Tengo mi formulario diseñado con botones, estos me abren archivos de Excel, necesito que cuando le de abrir a un archivo se minimize mi formulario o me quede oculto mostrando primero el archivo que abrí

1 Respuesta

Respuesta
2

Antes de la instrucción que tienes para abrir el archivo pon la instrucción:

Me. Hide

Por ejemplo:

Private Sub CommandButton1_Click()
Me.Hide
Workbooks.Open "C:\Documents and Settings\" & "libro1.xlsx"
End Sub

Con eso ocultas el formulario, pero para abrir nuevamente el formulario tendrás que llamar nuevamente a la macro con la que lo abriste con la instrucción userform1.show


Ahora, si quieres minimizar el formulario, tendrás que poner el siguiente código en el formulario:

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

Para minimizarlo tienes que presionar el botón de minimizar, para regresar a su tamaño deberás presionar el botón de restaurar.

Gracias Dante, esa era la idea básica, pero me cierra mi formulario. No hay forma de que lo deje abierto.

Ya el código y minimizar y maximizar lo tenia configurado

Si le pones .hide, no lo cierra, está oculto. Para mostrarlo nuevamente tienes que poner .show

El formulario se cierra con unload

El problema es que si estás en otro libro, cómo le vas a poner .show; tiene que ocurrir un evento en el formulario, ya que el formulario es el que está actualmente en ejecución.

Prueba otra alternativa, cambia del formulario la propiedad showmodal = false, de esa forma el formulario queda como flotando y puedes ir a la hoja y moverte en la hoja.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas