Hacer macro más corta sin tener que mencionar todos TextBox

DAM, esta macro

Private Sub CheckBox1_Click()
    If CheckBox1 = True Then
        frmLista.Height = 282
        TextBox6.Enabled = False: TextBox7.Enabled = False: TextBox8.Enabled = False: TextBox9.Enabled = False
        TextBox6 = "": TextBox7 = "": TextBox8 = "": TextBox9 = ""
    Else
        frmLista.Height = 100
        TextBox6.Enabled = True: TextBox7.Enabled = True: TextBox8.Enabled = True: TextBox9.Enabled = True
        TextBox1 = "": TextBox2 = "": TextBox3 = "": TextBox4 = "": TextBox5 = "": TextBox10 = ""
    End If
End Sub

¿se puede hacer mas corta a que no tenga quemencione todos textBox?

Funciona de mil pero ¿tener qué mencionar tanto TextBox?

1 respuesta

Respuesta
2

Sería algo como esto:

Private Sub CheckBox1_Click()
    If CheckBox1 = True Then
        frmLista.Height = 282
        For i = 6 To 9
            Controls("TextBox" & i).Enabled = False
            Controls("TextBox" & i) = ""
        Next
    Else
        frmLista.Height = 100
        For i = 6 To 9
            Controls("TextBox" & i).Enabled = True
        Next
        tbs = Array(1, 2, 3, 4, 5, 10)
        For i = LBound(tbs) To UBound(tbs)
            Controls("TextBox" & tbs(i)) = ""
        Next
    End If
End Sub

Lo anterior ayudaría si tuvieras muchos más textbox, pero para unos 4 ó 5, creo que estoy poniendo más líneas  de código que las que ya tienes.

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas