Pasar elementos de un listbox a otro

Esta es mi pregunta. Tengo dos listbox, en el primero una lista de alumnos ingresantes y en el otro una lista vacía de alumnas a asignar curso.

La idea es, ir pasando los alumnos ingresantes, de a uno, a la lista vacía (para ir conformando el nuevo curso). Pero quisiera que la lista de alumnos ingresantes se vaya "vaciando" en la medida que los voy pasando a la otra lista y hacer lo mismo al cantrario si el operador se equivoco en la selección.

Por ahora lo que hago a manera de prueba es los siguiente:

Private Sub ListBox1_Click()
If ListBox1.ListIndex = -1 Then Exit Sub
ListBox2.AddItem ListBox1.Value

'Aquí es donde me da error
ListBox1.RemoveItem ListBox1.ListIndex

End Sub
Private Sub ListBox2_Click()
If ListBox1.ListIndex = -1 Then Exit Sub
ListBox2.RemoveItem ListBox2.ListIndex
End Sub

Private Sub UserForm_Initialize()
If Me.ListBox1.ListCount > 0 Then
Exit Sub
Else
Alumnos = Array("Alumno 1", "Alumno 2", "Alumno 3")
For i = LBound(Alumnos) To UBound(Alumnos)
Me.ListBox1.AddItem (Alumnos(i))
Next
End If
End Sub

2 respuestas

Respuesta
3

Te mando mi solución, sigue mi ejemplo:

dentro del form tenemos:

-Un listbox1

-Un listbox2

-Un botón debajo de listbox1 (para pasar los datos al otro)

-Un botón debajo de listbox2 (para pasar los datos al otro)

Estas son las macros que hacen falta:

Private Sub CommandButton1_Click()
ListBox2.AddItem ListBox1.Value
For m = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(m) = True Then
ListBox1.RemoveItem m
End If
Next
End Sub
Private Sub CommandButton2_Click()
ListBox1.AddItem ListBox2.Value
For p = 0 To ListBox2.ListCount - 1
If ListBox2.Selected(p) = True Then
ListBox2.RemoveItem m
End If
Next
End Sub
Private Sub UserForm_Initialize()
Sheets("hoja1").Select
Range("a1").Select
Do While ActiveCell.Value <> ""
ListBox1.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Loop
End Sub

recuerda finalizar la consulta

Respuesta

Esta genial el código pero al agregar más columnas me da un error cuando quita el item del listbox1 aquí:

ListBox1. RemoveItem m
ListBox1. RemoveItem m

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas