Pasar datos desde un cuadro de lista a una tabla

Conseguí en internet un código con el cual cargo los datos contenidos en una Tabla (NOMBRES) a un Cuadro de Lista (LISTA) que se encuentra en un formulario (UserForm de excel). El código que carga los datos es el siguiente:

Private Sub UserForm_Initialize()
Dim FILA As Long
Dim I As Long
LISTA.ColumnCount = 2
FILA = Hoja1.Range("A" & Rows.Count).End(xlUp).Row

For I = 2 To FILA
With LISTA
.AddItem
.List(LISTA.ListCount - 1, 0) = Hoja1.Cells(I, 1)
.List(LISTA.ListCount - 1, 1) = Hoja1.Cells(I, 2)
End With
Next I
End Sub

Quisiera lograr que al hacer doble clic en un registro del "cuadro de lista" el contenido se copie a una tabla llamada "LISTA" a continuación del último registro pero en las columnas A y B. No encuentro la solución porque soy poco diestro en programación. Gracias mil... Para todos.

Respuesta

Yo lo mando a un rango específico en mi formulario, intenta con este:

Private Sub ListBox1_Click()
'
fila = ListBox1.ListIndex + 2
individual = Sheets("Main").Range("C1")
'
    With Sheets("Main").Range(ListBox1.RowSource)
        Sheets("Main").Range("C1").Value = .Offset(ListBox1.ListIndex, 0).Resize(1, 1).Value
    End With
'
End Sub

1 respuesta más de otro experto

Respuesta

Quisiera lograr que al hacer doble clic en un registro del "cuadro de lista"

Si quieres hacerlo con doble clic, agrega el siguiente evento al userform.

Cambia "Hoja2" por el nombre de la hoja donde tienes la tabla "LISTA".

Private Sub LISTA_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  Dim listObj As ListObject
  Dim nRow As Long
  '
  Set listObj = Hoja2.ListObjects("LISTA")
  listObj.ListRows.Add , False
  nRow = listObj.Range.Rows.Count
  listObj.Range.Cells(nRow, 1) = LISTA.List(LISTA.ListIndex, 0)
  listObj.Range.Cells(nRow, 2) = LISTA.List(LISTA.ListIndex, 1)
End Sub

Prueba y me comentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas