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.
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