Dudas macros

Buenas tardes me pregunto sime podrías hacer el favor de ayudar con unas dudas:
*como dejar un formulario estatico en una macro y ubicalo con cordenas en una ubicacion especifica
*como puedo quitar el boton de xcerrar del formulario paque nose vea y insertar el de minimizado
*y como motar un escroll qe aparesca solo cuando la pantalla no se acomode al tamaño del formulario
gracias

3 respuestas

Respuesta
1
La intentar la controlas manejando los sgtes valores:
StartUpPosition ' indica el modo de posicionar el form el valor 0 indica que sera manualmente
Así:
Private Sub UserForm_Initialize()
Me.StartUpPosition = 0
End Sub
Al inicializar el formulario estableces este valor
la posicion se control mediante
left y top
ejemplo
Private Sub UserForm_Click()
Me.Left = 100
Me.Top = 150
End Sub
Al dar un click sobre el form le indicas que se desplace 100 "espacios" a la derecha del contenedor y 150 desde el borde superior
En donde el contenedor es "la plantalla" en su borde izquierdo superior es cero
Para quitar el botón POR, y poner minimizar tal como en Visual basic 6.0 o superior,
Debes hacerlo mediante llamada a API de windows, excel no lo ofrece.
Para que quede estático debes establecer la propiedad Showmodal=true
pero cada form tiene esa propiedad a true por default
Respuesta
1
No entiendo a que te refieres con un formulario estático. En cuanto a la ubiación tienes que controlas las propiedades.
- StartupPosition. Si lo pones a 0, que significa Manual las siguientes propiedades te indicana la posición.
- Top. Posición en el eje y respecto de la esquina superior izquierda. (0,0)
- Left. Posición en el eje por respecto de la esquina superior izquierda. (0,0)
La posición de referencia del formulario (donde se ancla según top, left) es también su esquina superior izquierda.
En cuanto al scroll las propiedades son:
- KeepScrollbarVisible. El valor 3 indica ambos
- ScrollBars: 3 significa ambos también, 0 ninguno, 1 el horiazontal y 2 el vertical.
Para los botones de minimizar es algo más complicado porque hay que recurrir a las librerías de windows. Aquí tienes como hacerlo:
http://www.vbaexpress.com/kb/getarticle.php?kb_id=165
Si te vale un "sucedáneo" puedes usar botones toggle. Aqui tienes el ejemplo:
http://www.ozgrid.com/VBA/minimize-maximize.htm
Respuesta
1
Bien, para eso debes de hacer que tu macro cargue el formulario. Ejm:
Public sub LoadForm()
xformulario.show(1)
End sub
Al cargar el Form con el parámetro (1) hará que este este siempre activo o mejor dicho sobre la hoja de excel, en el evento initialze del Form, debes indicar las coordenadas donde lo quieras: Top xxxx Left yyyy, así tendrás tu form tu form en las coordenadas que tu eliges.
El boton x del form desde diseño no lo vas a poder desaparecer, por lo que te dejo 2 opciones:
1. Deshabilitar en el evento al cerrar.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Cancel = True
End Sub
2. Hacerlo desde codigo.
para eso debes copiar el sig codigo en el evento Initialize.
Private Sub UserForm_Initialize()
Dim hWnd As Long
Dim lngWstyle As Long
'Localizar la ventana del formulario
hWnd = FindWindow(vbNullString, Me.Caption)
lngWstyle = GetWindowLong(hWnd, GWL_STYLE)
'Borrar el botón X
SetWindowLong hWnd, GWL_STYLE, lngWstyle And (Not WS_SYSMENU)
'Dibujar de nuevo la barra
DrawMenuBar hWnd
End Sub
Luego debes agregar un Modulo y copiar este codigo.
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Public Const GWL_STYLE As Long = -16&
Public Const WS_SYSMENU As Long = &H80000
Esta ultima opción(2) si te oculta el botón por del Form, pero asegurate de cerrar o poner un botón de comando para cerrar el form, sino no lo podrás cerrar nunca.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas