Jump to content
Felipe Torres

FORMULARIO MENU (MDI) EXCEL

Recommended Posts

Hola amigos, debido a la gran ayuda que he recibido en este foro, quiero compartirles algo que encontré por ahí en la red, se trata de un formulario MDI, o menú, como lo quieran llamar, está fabuloso, dado que excel no tiene la opción por si solo de crear formularios de inicio, no lo subo como aporte ya que hay que hacerle algunas modificaciones y espero de su ayuda ya que soy novato en esto de la programación vba. (cuando esté listo se puede subir para los miembros del foro).

El tema es que en sistema operativo de 32 bits, lo puedo ejecutar sin ningún problema, pero en sistemas de 64 bits, me tira errores, (ya cambie las declaraciones de funciones por PtrSafe, pero me sigue dando error en el formulario inicio especificamente Findwindow.  "NO COINCIDEN LOS TIPOS"

(g_hForm = FindWindow(vbNullString, Me.Caption)

 

Si alguien me puede echar una mano,  arreglarlo y hacerle modificaciones juntos creo que quedaría genial.

La idea mía es hacer un sistema que pueda:

- cargar periódicamente una actualización de un archivo excel del escritorio y sirva como base de datos de personas.

-a partir de esa base generar documentos word o informes con varios nombres, (usando filtros) misma función que cumple combinar correspondencia. 

-filtrar datos de una tabla generar reporte e imprimir

-etc

Adjunto archivo (Sistema de Gestion VDC" FORMULARIO MDI")

y tambien archivo (System VDC), donde tengo en excel mas o menos lo que quiero plasmar en el sistema, desde ya abierto a todas las ideas y sugerencias que me podáis comentar, desde ya muchísimas gracias.

 

 

 

Sistema de Gestion VDC.xlsm

Share this post


Link to post
Share on other sites
Hace 30 minutos , Felipe Torres dijo:

Hola amigos, debido a la gran ayuda que he recibido en este foro, quiero compartirles algo que encontré por ahí en la red, se trata de un formulario MDI, o menú, como lo quieran llamar, está fabuloso, dado que excel no tiene la opción por si solo de crear formularios de inicio, no lo subo como aporte ya que hay que hacerle algunas modificaciones y espero de su ayuda ya que soy novato en esto de la programación vba. (cuando esté listo se puede subir para los miembros del foro).

El tema es que en sistema operativo de 32 bits, lo puedo ejecutar sin ningún problema, pero en sistemas de 64 bits, me tira errores, (ya cambie las declaraciones de funciones por PtrSafe, pero me sigue dando error en el formulario inicio especificamente Findwindow.  "NO COINCIDEN LOS TIPOS"

(g_hForm = FindWindow(vbNullString, Me.Caption)

 

Si alguien me puede echar una mano,  arreglarlo y hacerle modificaciones juntos creo que quedaría genial.

La idea mía es hacer un sistema que pueda:

- cargar periódicamente una actualización de un archivo excel del escritorio y sirva como base de datos de personas.

-a partir de esa base generar documentos word o informes con varios nombres, (usando filtros) misma función que cumple combinar correspondencia. 

-filtrar datos de una tabla generar reporte e imprimir

-etc

Adjunto archivo (Sistema de Gestion VDC" FORMULARIO MDI")

y tambien archivo (System VDC), donde tengo en excel mas o menos lo que quiero plasmar en el sistema, desde ya abierto a todas las ideas y sugerencias que me podáis comentar, desde ya muchísimas gracias.

 

 

 

Sistema de Gestion VDC.xlsm

Lamentablemente no me carga el segundo archivo, me dice

"ha habido un problema procesando el archivo enviado ", lo he comprimido para tratar de subirlo así y tampoco, seguiré intentando..

 

Share this post


Link to post
Share on other sites

hola este tema ya estaba resuelto o sacan la información de un mismo lugar

'Para mostrar un UserForm sin barra de titulo necesitamos cuatro funciones API:
Private Const GWL_STYLE = -16
Private Const WS_CAPTION = &HC00000

#If VBA7 Then

    #If Win64 Then
        Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongPtrA" (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr
        Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongPtrA" (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
    #Else
        Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr
        Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
    #End If
    Private Declare PtrSafe Function DrawMenuBar Lib "user32" (ByVal hwnd As LongPtr) As Long
    Private Declare PtrSafe Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
#Else
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex 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 DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
#End If



Private Sub UserForm_Initialize()
'Este código realiza el procedimiento de ocultar la barra de título, haciendo uso de las API
    Dim lngWindow, lFrmHdl
    
    lFrmHdl = FindWindowA(vbNullString, Me.Caption)
    lngWindow = GetWindowLong(lFrmHdl, GWL_STYLE)
    lngWindow = lngWindow And (Not WS_CAPTION)
    Call SetWindowLong(lFrmHdl, GWL_STYLE, lngWindow)
    Call DrawMenuBar(lFrmHdl)

 

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png