Evento en VBA Excel con Array para determinados controles

Te envío el libro del ejemplo para que me prestes una de tus manos por brevísimo momento.

He tratado por ejemplos tuyos en hacerlo, 1ª parte me funciona pero la 2ª parte que quiero, no doy con pie en bola

La macro

Private Sub ComboBox2_Change()
Dim i As Double
cbb = ComboBox2
    If cbb = "PERSONA JURIDICA" Then
    caj = Array("Textbox2", "Textbox3", "Textbox4") 'AL ARRAY QUIERO AGREGARLE UN FRAME2 solo ENABLED TAMBIEN
    For i = LBound(caj) To UBound(caj)
'        If Me.Controls(caj(i)) = Enabled = False Then
        Controls(caj(i)).Text = "NO"
        Controls(caj(i)).Enabled = False
''ADEMAS QUIERO COLOCAR QUE SI NO ES "PERSONA JURIDICA" QUE LOS COLOQUE TRUE Y VACIOS
'        Controls(caj(i)).Text = ""
'        Controls(caj(i)).Enabled = True
'            MsgBox "False: " & (caj(i)), vbExclamation, "ALTA CLIENTES"
'            Exit Sub
'        End If
    Next
    End If
End Sub

Te  envío el ejemplo con un form con los controles que quiero

En

Como esta la macro, me funciona la 1ª parte pero la 2ª no logro

Agradecido DAM

1 Respuesta

Respuesta
1

H o l a:

Te anexo el código completo del formulario:

Private Sub ComboBox2_Change()
'Act.Por.Dante Amor
    caj = Array("Textbox2", "Textbox3", "Textbox4") 'AL ARRAY QUIERO AGREGARLE UN FRAME2 solo ENABLED TAMBIEN
    OptionButton1 = False
    OptionButton2 = False
    If ComboBox2 = "PERSONA JURIDICA" Then
        texto = "NO"
        disp = False
    Else
        texto = ""
        disp = True
    End If
    '
    For i = LBound(caj) To UBound(caj)
        Controls(caj(i)).Text = texto
        Controls(caj(i)).Enabled = disp
    Next
    Frame2.Enabled = disp
End Sub
'
Private Sub UserForm_Initialize()
'DOCUMENTO
    Final = Worksheets("COMBOS").Cells(Rows.Count, 2).End(xlUp).Row
    For i = 2 To Final
        ComboBox2.AddItem (Worksheets("COMBOS").Cells(i, 2))
    Next
    Frame2.Enabled = False
End Sub

S a l u d o s

Hola DAM,

Más rápido solo en tren japonés y tal vez ni ese mismo

Gracias

Quiero pedirte si me podías comentar la macro, he estado a ver donde salen los texto y disp

Sale con comentarios:

Private Sub ComboBox2_Change()
'Act.Por.Dante Amor
    caj = Array("Textbox2", "Textbox3", "Textbox4")
    '
    'Los option se apagan cada vez que se selecciona una personaliad
    OptionButton1 = False
    OptionButton2 = False
    '
    'Pregunto si el valor del combobox es "Persona juridica"
    If ComboBox2 = "PERSONA JURIDICA" Then
        'Si es persona juridica, entonces
        texto = "NO"
        disp = False
    Else
        'Si no es persona juridica, entonces
        texto = ""
        disp = True
    End If
    '
    For i = LBound(caj) To UBound(caj)
        'como las variables texto y disp ya fueron actualizadas
 'en esta parte solamente se pasan a la caj
        Controls(caj(i)).Text = texto
        Controls(caj(i)).Enabled = disp
    Next
    'el frame2 va a tomar el valor de la variable disp
    Frame2.Enabled = disp
End Sub
'
Private Sub UserForm_Initialize()
'DOCUMENTO
    Final = Worksheets("COMBOS").Cells(Rows.Count, 2).End(xlUp).Row
    For i = 2 To Final
        ComboBox2.AddItem (Worksheets("COMBOS").Cells(i, 2))
    Next
    '
    'El frame2 se deshabilita para que no puedan esocger el sexo hasta
 'que seleccionen la persona
    Frame2.Enabled = False
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas