¿Por qué permanece visible el UF principal cuando lo trato de evitar desde un subformulario ? (DAM)

De nuevo le solicito amablemente su ayuda para aclararme la siguiente duda.

He agregado un subformulario a mi UF principal, a dicho subform le he adaptado el código para ir a cada una de las hojas existentes en mi libro por medio de un combobox, hasta aquí funciona bien.

El problema que tengo cuando le doy click en el combo para elegir la hoja a mostrar, este subform se descarga pero no me muestra el workbook con la hoja elegida, no se cierra el UF principal, lo que hago es cerrar manualmente UF principal y solamente así puedo ver el workbook con la hoja.

Digame por favor maestro, qué estoy haciendo mal o qué me falta para corregir este inconveniente, y lograr descargar al mismo tiempo ambos forms al momento de dar click en el combobox.

Nota: Después de ir a la hoja debo regresar al UF principal y hacerlo visible nuevamente.

Anexo el código que utilizo para ir a la hojas deseada, el cual lo tengo en el subform llamado "Mostrar Hojas":

Private Sub ComboBox1_Click()

Unload Me                          'Con esto descargo el subform

UserForm1. Hide               'Este es el nombre de mi form principal
Application.Visible = True
Sheets(ComboBox1.Value).Select
End Sub

Como siempre le reitero mi admiración y respeto.

1 Respuesta

Respuesta
1

Agrega esta línea al principio:

Application.screenupdating = True

Si no te funciona, envíame tu archivo con el formulario y me explicas cómo entro a tu formulario.

Recuerda poner tu nombre de usuario en el asunto del correo

El código quedaría del formulario UFMostrarHojas

Private Sub ComboBox1_Change()
'Por.Dante Amor
    Application.ScreenUpdating = False
    OcultarHojas
    hoja = ComboBox1
    Application.Visible = True
    Sheets(hoja).Visible = True
    Sheets("temp").Visible = False
    Unload Me
    Menu.Hide
End Sub
'
Private Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    KeyAscii = 0
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    ComboBox1.Visible = False
    For Each h In Sheets
        If UCase(h.Name) <> "TEMP" Then
            ComboBox1.AddItem h.Name
        End If
    Next
End Sub
'
Private Sub TextBox1_Change()
   If TextBox1.Value = "123" Then
        ComboBox1.Visible = True
    End If
End Sub
'
'Private Sub ComboBox1_Click()
    'Application.ScreenUpdating = True
    'Unload
    'Menu.Hide
    'Application.Visible = True
    'Sheets(ComboBox1.Value).Select
'End Sub

Pero no entiendo cómo vas a regresar al userform Menu nuevamente, tendrías que poner un botón en cada hoja para que te abra nuevamente el userform Menu.

Saludos. Dante Amor

Tiene usted mucha razón, para volver al UF principal, una opción es agregar un botón en cada hoja, pero para evitar esto yo utilice el evento BeforeClose del Workbook y me funciona sin problemas.

¡Muchísimas gracias maestro!

Que descanse.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas