Reducir Código. Hacer visible / ocultar gran cantidad de Textbox y Labels

Buenas noches, lo primero de todo decir que soy novato en esto de programar en excel.
Tengo una macro que según el valor que se introduce en un textbox (TextBox1), hace que se hagan visibles u oculten una serie de labels y textbox (todo dentro de un userform). Esto es para que cuando introduzca en TextBox1 la marca de un producto, se me activen o desactiven los parámetros necesarios para el mismo.
La macro que tengo me funciona perfectamente pero el tamaño que está adquiriendo es lo que me preocupa. Pongo un trocito a modo de ejemplo:

If (TextBox1 Like "*ModeloA*") Then
Label34 = "Etiquetado 1"
Label35.Visible = True
TextBox25.Visible = True
Label43.Visible = True
Label44.Visible = False
Else
Label34 = Empty
Label35.visible = False
TextBox25.Visible = False
Label43.Visible = False
Label44.Visible = True
End If


Sería posible reducir esta estructura? Quizá utilizando lo siguiente?
Me.Controls("Textbox" & x).Visible = True


Muchísimas gracias y espero haberlo expuesto de forma clara.

1 Respuesta

Respuesta
1

Podrías utilizar lo siguiente:

En el Array escribe todos los número de textbox y de label que quieras ocultar o hacer visibles

If (TextBox1 Like "*ModeloA*") Then
    oculta_text = Array(2, 3)
    For i = LBound(oculta_text) To UBound(oculta_text)
        Me.Controls("Textbox" & oculta_text(i)).Visible = True
    Next
    oculta_label = Array(35, 43, 44)
    For i = LBound(oculta_label) To UBound(oculta_label)
        Me.Controls("Label" & oculta_label(i)).Visible = True
    Next
Else
    oculta_text = Array(2, 3)
    For i = LBound(oculta_text) To UBound(oculta_text)
        Me.Controls("Textbox" & oculta_text(i)).Visible = False
    Next
    oculta_label = Array(35, 43, 44)
    For i = LBound(oculta_label) To UBound(oculta_label)
        Me.Controls("Label" & oculta_label(i)).Visible = False
    Next
End If

Saludos.Dam
Si es lo que necesitas.

Impresionante!! Esto es justo lo que buscaba! Muchísimas gracias, no sabes cuanto te lo agradezco. Me has hecho ahorrar muchísimo código.

Un saludo y mil gracias por tu ayuda!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas