Llenar un ListBox usando ComboBox

Tengo un formulario con un combo box que tiene las identificaciones de las personas. En el mismo libro en una segunda hoja tengo los registros de contratos asociados a las identificaciones.

Quiero en el formulario mostrar en un ListBox todos los registros de contratos que haya tenido alguien al seleccionarlo en el combobox.

1 respuesta

Respuesta
4

Suponiendo lo siguiente:

- La segunda hoja se llama "Hoja2"

- Las identificaciones están en la columna "A"

- El combo se llama combobox1, el listbox se llama listbox1.

- Te pongo 4 columnas de ejemplo para cargar en el listbox (B, C, D y E)

Private Sub combobox1_Change()
  Dim sh2 As Worksheet, r As Range, f As Range, cell As String
  With ListBox1
    .Clear
    .ColumnCount = 4
    If combobox1.Value = "" Or combobox1.ListIndex = -1 Then
      Exit Sub
    End If
    Set sh2 = Sheets("Hoja2")
    Set r = sh2.Range("A:A")
    Set f = r.Find(combobox1.Value, , xlValues, xlWhole)
    If Not f Is Nothing Then
      cell = f.Address
      Do
        . AddItem sh2. Cells(f.Row, "B")
        . List(.ListCount - 1, 1) = sh2. Cells(f.Row, "C")
        . List(.ListCount - 1, 2) = sh2. Cells(f.Row, "D")
        . List(.ListCount - 1, 3) = sh2. Cells(f.Row, "E")
        Set f = r.FindNext(f)
      Loop While Not f Is Nothing And f.Address <> cell
    End If
  End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas