Macro para quitar temporalmente textbox de formulario según combobox

Para: Dante

Nuevamente recurriendo a tu ayuda, tengo un formulario en la que ya me diste una macro y quisiera agregar algo mas; que cuando uno elija la hoja con el combobox esta me quite algunos textbox temporalmente según la hoja elegida en el combobox por ejemplo.

En la primera imagen1 se ve como es el formulario de la hoja "Dato1" según combobox. En la segunda Imagen2 se ve como es el formulario de la hoja "Dato2" según combobox.

La macro que me diste es la siguiente.

Private Sub CommandButton1_Click()'Por.Dante Amor    If ComboBox1 = "" Then        MsgBox "Selecciona la hoja"        Exit Sub    End If    'pasa los datos de los textbox a la hoja seleccionada en el combo    Set h = Sheets(ComboBox1.Value)    h.Range("A5") = TextBox1    h.Range("B6") = TextBox2End SubPrivate Sub UserForm_Activate()'Por.Dante Amor    'Cargar los nombres de las hojas en el combo    For Each h In Sheets        ComboBox1.AddItem h.Name    NextEnd SubPrivate Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)'Por.Dante Amor    'valida que solamente puedan escoger un nombre de hoja válido (que está en el combo)    KeyAscii = 0End Sub

2 respuestas

Respuesta
2

Te anexo un ejemplo del código que debes poner en tu formulario.

No tengo tu formulario, no sé cómo se llaman los textbox ni cuáles se deben ocultar en cada caso, pero puedes adaptar el código a tus necesidades.

Primero, en la macro tienes que poner todos los textbox visibles.

Después, tienes que indicarle para cada hoja, cuáles textbox quieres ocultar, por ejemplo: si en el combo seleccionas la hoja "Dato2", entonces los textbox 2 y 4 se ocultan.

Private Sub ComboBox1_Change()
'Por.Dante Amor
    '
    'Poner todos los textbox visible
    TextBox1.Visible = True
    TextBox2.Visible = True
    TextBox3.Visible = True
    TextBox4.Visible = True
    '
    'Ocultar los textbox para cada hoja
    Select Case ComboBox1
        Case "Dato1"
            TextBox1.Visible = False
            TextBox3.Visible = False
        Case "Dato2"
            TextBox2.Visible = False
            TextBox4.Visible = False
        Case "Dato3"
            TextBox3.Visible = False
            TextBox4.Visible = False
    End Select
End Sub

Avísame si tienes dudas de cómo adaptar el código. En tal caso envíame tu archivo con el formulario y me dices cuáles textbox se deben ocultar en cada hoja. Recuerda poner tu nombre en el asunto del correo.

Hola!

Gracias por tu maravilloso tiempo, e probado la macro que me diste pero sin resultados, e adjuntado el archivo a tu correo para los cambios que se puedan realizar gracias por la respuesta que me puedas dar.

Este sería el código, el detalle es que el nombre de las hojas está en mayúsculas y yo lo puse en minúsculas.

Private Sub ComboBox1_Change()
'Por.Dante Amor
    '
    'Poner todos los textbox visible
    TextBox2.Visible = True
    TextBox3.Visible = True
    TextBox4.Visible = True
    TextBox5.Visible = True
    '
    'Ocultar los textbox para cada hoja
    Select Case UCase(ComboBox1)
        Case UCase("Dato1")
            TextBox2.Visible = False
            TextBox3.Visible = False
            TextBox4.Visible = False
        Case UCase("Dato2")
            TextBox4.Visible = False
            TextBox5.Visible = False
        Case UCase("Dato3")
            TextBox3.Visible = False
            TextBox4.Visible = False
    End Select
End Sub
Respuesta
1

Este tema ya lo e resuelto por lo tanto le doy por concluido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas