¿Cómo mover elementos rápidamente entre dos cuadros de lista en Excel?
¿Ha intentado alguna vez mover elementos de un cuadro de lista a otro según sus necesidades, como se muestra en la siguiente captura de pantalla? A continuación, le explicaré cómo realizar esta operación en Excel.
![]() | ![]() | ![]() |
Mover elementos entre cuadros de lista
Mover elementos entre cuadros de lista
No existe ninguna función integrada que le ayude a completar esta tarea, pero tengo un código VBA que puede echarle una mano.
1. En primer lugar, debe crear una lista de datos que se mostrará como los elementos de los cuadros de lista en una hoja nueva denominada Admin_Lists.

2. A continuación, seleccione estos datos y vaya al cuadro Nombre para asignarles el nombre ItemList. Vea la captura de pantalla:

3. A continuación, en una hoja donde colocará los dos cuadros de lista, haga clic en Desarrollador > Insertar > Cuadro de lista (control ActiveX) y dibuje dos cuadros de lista. Consulte la captura de pantalla:
![]() | ![]() | ![]() |
Si la pestaña Desarrollador está oculta en su Cinta de opciones, ¿cómo mostrar/visualizar la pestaña Desarrollador en Excel 2007/2010/2013 Cinta de opciones?, este artículo le indicará cómo mostrarla.
4. A continuación, haga clic en Desarrollador > Insertar > Botón de comando (control ActiveX) y dibuje cuatro botones entre los dos cuadros de lista. Vea la captura de pantalla:
![]() | ![]() | ![]() |
Ahora, renombre los cuatro botones de comando con el nuevo nombre.
5. Seleccione el primer botón de comando, haga clic en Propiedades y, en el panel Propiedades, asígnele el nombre BTN_moveAllRight y escriba >> en el cuadro de texto situado junto a Leyenda. Vea la captura de pantalla:

6. Repita el paso 5 para renombrar los últimos tres botones de comando con los nombres indicados a continuación e incluya también las flechas correspondientes en sus leyendas. Consulte la captura de pantalla:
BTN_MoveSelectedRight
BTN_moveAllLeft
BTN_MoveSelectedLeft
![]() | ![]() | ![]() |
7. Haga clic con el botón derecho en el nombre de la hoja que contiene los cuadros de lista y los botones de comando y seleccione Ver código en el menú contextual. Vea la captura de pantalla:

8. Copie y pegue el siguiente código de macro en el módulo de script, guarde el código y cierre la ventana de Microsoft Visual Basic para Aplicaciones. Vea la captura de pantalla.
VBA: Mover elementos entre dos cuadros de lista
Private Sub Worksheet_Activate()
'UpdatebyExtendoffice20171117
Dim xCell As Range
Dim xRg As Range
Set xRg = Sheets("Admin_Lists").Range("ItemList")
Me.ListBox1.Clear
Me.ListBox2.Clear
With Me.ListBox1
.LinkedCell = ""
.ListFillRange = ""
For Each xCell In xRg
If xCell <> "" Then
.AddItem xCell.Value
End If
Next xCell
End With
Me.ListBox1.MultiSelect = fmMultiSelectMulti
Me.ListBox2.MultiSelect = fmMultiSelectMulti
End Sub
Private Sub BTN_MoveSelectedLeft_Click()
Call moveSigle(Me.ListBox2, Me.ListBox1)
End Sub
Private Sub BTN_MoveSelectedRight_Click()
Call moveSigle(Me.ListBox1, Me.ListBox2)
End Sub
Private Sub BTN_moveAllLeft_Click()
Call moveAll(Me.ListBox2, Me.ListBox1)
End Sub
Private Sub BTN_moveAllRight_Click()
Call moveAll(Me.ListBox1, Me.ListBox2)
End Sub
Sub moveAll(xListBox1 As Object, xListBox2 As Object)
Dim I As Long
For I = 0 To xListBox1.ListCount - 1
xListBox2.AddItem xListBox1.List(I)
Next I
xListBox1.Clear
End Sub
Sub moveSigle(xListBox1 As Object, xListBox2 As Object)
Dim I As Long
For I = 0 To xListBox1.ListCount - 1
If I = xListBox1.ListCount Then Exit Sub
If xListBox1.Selected(I) = True Then
xListBox2.AddItem xListBox1.List(I)
xListBox1.RemoveItem I
I = I - 1
End If
Next
End Sub 
9. A continuación, vaya a otra hoja y regrese a la que contiene los cuadros de lista. Verá que los datos ya aparecen en el primer cuadro. Haga clic en los botones de comando para mover elementos entre ambos cuadros.

Mover selección
![]() | ![]() | ![]() |
Mover todo
![]() | ![]() | ![]() |
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos













