Botón Minimizar y Maximizar

Resulta que yo ando en las mismas de carolina pero cuando pego el código de las declaración que van antes de _initialize me error de compilación diciendo que los comentarios deben ir antes de end sub etc y me señala la primera linea de las declaraciones.

1 Respuesta

Respuesta
4
No se ve la consulta de carolina ni se vé aquí la rutina. Si amplias tu consulta (presionando el botón Aclaraciones) quizás pueda ayudarte.
Hola gracias por su atención
La consulta de carolina es sobre el botón minimizar de un userform con macro en excel, a ella se pasaron la siguiente rutina y procedimientos
Esos "botones" no vienen por defecto en los userform de VBA. Debes crearlos usando funciones de la APIde windows:
'Code to add a miminise and maximise button to a VBA userform
'Daniel Klann 13th June 2002
'Windows API functions we need to use to achieve this
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) 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
'Constants used within the API functions above
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
    'Get the Windows handle of the userform - required for the API calls
    If Application.Version < 9 Then
        lngMyHandle = FindWindow("THUNDERXFRAME", Me.Caption)   'For Excel 97
    Else
        lngMyHandle = FindWindow("THUNDERDFRAME", Me.Caption)   'For Excel 2000 onwards
    End If
    'Get the current style of the userform
    lngCurrentStyle = GetWindowLong(lngMyHandle, GWL_STYLE)
    'Create a new style with max and min buttons
    lngNewStyle = lngCurrentStyle Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
    'Apply it to the userform
    SetWindowLong lngMyHandle, GWL_STYLE, lngNewStyle
End Sub
OJO, esto va en el modulo de userform
Abraham
Pero yo lo copio y pego y cuando ejecuto me da erro en las primeras linea es decir la declaración de private function diciéndome que los comentarios deben ir después de en sub etc.. me imagino que debe ser por las doble comilla que aparece lib "user32" y las demás.
Agradezco tu ayuda Gracias
¿Se me olvidaba tengo office 2007 tendrá algo que ver?
TE comento que anda perfecto, en esa versión. -Quizás no la estás colocando con las comillas que requieren las 1ras líneas-
Podes pedirme el ejemplo al correo que encontrarás en mi sitio. Recuérdame por favor tu alias o motivo de consulta.
Hola
Para resumir todo el asunto
Solo quieron poder colocar un botón de minimzar a un userform
Agradezco su ayuda
Entonces usá la rutina tal como te la dejaron o tal como la copiaste aquí.
1-Entrá al Editor,
2-Insertá un Userform,
3- Hacé doble clic en el para entrar a la sección código,
4- Borrá lo que veas que se haya colocado automáticamente
5- Y allí copiá la misma rutina que dejaste aquí, tal cual.
Está probado en versión 2007 y responde perfectamente a lo que necesitas
Muchas Gracias !
Mi error era poner este código después de los demás procs cuando este debe ser el primero.
Fue de muchas Ayuda ademas tu sitio esta muy chevere!
Gracias de nuevo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas