Cargar Textbox al cambiar combobox dependiente de otro combobox

En el siguiente formulario el combobox 1 equivale a los nombres de cada hoja, mientras que al cambiar el datos en el combobox 1 el combobox 2 se carga con los datos de la columna A, lo cual se ejecuto con el siguiente código

Private Sub ComboBox1_Change()
ComboBox2.Clear
Set h = Sheets(ComboBox1.Value)
    For i = 2 To h.Range("A" & Rows.Count).End(3).Row
        ComboBox2.AddItem h.Cells(i, 1)
    Next i
End Sub

Luego de seleccionar el combobox 2 el evento changue necesito que  se  cargue cada textbox, desde el textbox 1 al textbox3 con los datos correspondientes a cada fila que contenga el OC seleccionado en el combobox2, en este caso el textbox1 con los datos de la columna b, el textbox2 con los datos de la columna c y el textbox3 con los datos de la columna d

Respuesta
1

Macro



Private Sub ComboBox2_Change()
    Set h = Sheets(ComboBox1.Value)
    Set b = h.Range("A:A").Find(ComboBox2.Text, lookat:=xlWhole)
    If Not b Is Nothing Then
        fila = b.Row
        '
        TextBox1 = h.Cells(fila, "B")
        TextBox2 = h.Cells(fila, "C")
        '
        'vas agregando el resto
        '
    End If
End Sub

1 respuesta más de otro experto

Respuesta
2

Si ya tienes la hoja en el combobox1 y el número de fila en el combobox2, puedes utilizarlos como referencia para obtener los datos:

Private Sub ComboBox1_Change()
  ComboBox2.Clear
  With Sheets(ComboBox1.Value)
    ComboBox2.List = .Range("A2", .Range("A" & Rows.Count).End(3)).Value
  End With
End Sub
'
Private Sub ComboBox2_Change()
  With Sheets(ComboBox1.Value)
    TextBox1 = .Range("B" & ComboBox2.ListIndex + 2)
    TextBox2 = .Range("C" & ComboBox2.ListIndex + 2)
    TextBox3 = .Range("D" & ComboBox2.ListIndex + 2)
  End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas