Centrar formulario Excel, en pantalla

Vengo esta vez pidiendo tu generosa ayuda a que des una orientación al evento del CheckBox.

EL form tien doble tamaño. Es decir, al abrir este, abre centrado, OK pero al marcar el checkBox toma nuevo tamaño y queda fuera de centro de la pantalla.

Lo propio si DESmarco el CheckBox, se queda.

Mi pretencion es que se centre al marcar CheckBox y que vuelva a centrarse si lo DESmarco.

He usado varias opciones encontradas (una de ellas)

Me.Height = Application.Height
Me.Width = Application.Width
otra
frmLista.StartUpPosition = 1
''''
frmLista.Top = 150
etc, etc

en la WEB pero ninguna me satisface, lo que no quiero es usar px como la de ultima línea de ejemplo  frmLista.Top = 150.

Te envio libro con la macro del evento Private Sub CheckBox1_Click()

1 respuesta

Respuesta
2

Si estás poniendo esta instrucción:

frmLista.StartUpPosition = 1

Significa que se va a centrar en el propietario.

Entonces, ya no es necesario que le indiques cuánto va a tener de Top:

frmLista.Top = 150

sal u dos

Quedaría así:

    If CheckBox1 Then
        frmLista.Height = 202
        frmLista.StartUpPosition = 2
        frmLista.Show
    Else
        frmLista.Height = 100
        frmLista.StartUpPosition = 2
        frmLista.Show
    End If

sal u dos

Ah, me faltó comentar que el formulario tiene que estar en showmodal = false

¿Como estas DAM?

NO me funciona.

Es para meter dentro del evento Private Sub CheckBox1_Click()

Hice metiendo la linea

frmLista.StartUpPosition = 2

en dicho evento

Private Sub CheckBox1_Click()
Dim i, tbs
    If CheckBox1.Value = True Then
'frmLista.StartUpPosition = 1 'QUIERO CENTRAR EL FORMULARIO
        frmLista.Height = 202
        frmLista.StartUpPosition = 2 'Al marcar el CheckBox

y tambien despues de

    Else
        frmLista.Height = 100
frmLista.StartUpPosition = 2 'Al DESmarcar el CheckBox

Revisa el archivo que te envié.

El código completo:

Private Sub CheckBox1_Click()
Dim i, tbs
    If CheckBox1 Then
        frmLista.Height = 202
        frmLista.StartUpPosition = 2
        frmLista.Show
        For i = 1 To 5
            Controls("TextBox" & i).Visible = False
            Controls("Label" & i).Visible = False
            cmbInsertar.Top = 165
            cmbCerrar.Top = 165
            CheckBox1.Top = 165
        Next
        TextBox12.Visible = True
        Label12.Visible = True
        For i = 6 To 11
            Controls("TextBox" & i).Visible = True
            Controls("TextBox" & i) = ""
            Controls("Label" & i).Visible = True
            Controls("Label" & i).Top = 6
            Controls("TextBox" & i).Top = 18
            TextBox12.Top = 65
            Label12.Top = 53
        Next
        CheckBox1.Caption = "Para Productos"
        TextBox6.SetFocus
    Else
        frmLista.Height = 100
        frmLista.StartUpPosition = 2
        frmLista.Show
        For i = 1 To 5
            Controls("TextBox" & i).Visible = True
            Controls("TextBox" & i) = ""
            Controls("label" & i).Visible = True
            cmbInsertar.Top = 66
            cmbCerrar.Top = 66
            CheckBox1.Top = 66
            TextBox1.SetFocus
        Next
        TextBox12.Visible = False
        Label12.Visible = False
        For i = 6 To 11
            Controls("TextBox" & i).Visible = False
            Controls("Label" & i).Visible = False
        Next
        CheckBox1.Caption = "Insertar datos finales"
    End If
End Sub

Además tienes que cambiar la propiedad ShowModal a False:

Sal u dos

Te anexo el vídeo para que veas el centrado:

https://youtu.be/xkebvSpzHAw 

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas