¿Cómo mover rápidamente elementos entre dos cuadros de lista en Excel?
¿Alguna vez has intentado mover los elementos de un cuadro de lista a otro, como se muestra en la captura de pantalla a continuación? Aquí hablaré sobre esta operación en Excel.
![]() | ![]() | ![]() |
Mover elementos entre cuadros de lista
Mover elementos entre cuadros de lista
No hay una función integrada que pueda ayudarte a completar el trabajo, pero tengo un código VBA que puede hacerlo.
1. Primero, necesitas crear una lista de datos que se mostrarán como los elementos en los cuadros de lista en una nueva hoja llamada Admin_Lists.
2. Luego selecciona estos datos y ve al cuadro de nombres para asignarles un nombre: ItemList. Ver captura de pantalla:
3. Luego, en una hoja que contendrá los dos cuadros de lista, haz clic en Desarrollador > Insertar > Cuadro de Lista (Control ActiveX), y dibuja dos cuadros de lista. Ver captura de pantalla:
![]() | ![]() | ![]() |
Si la pestaña Desarrollador está oculta en tu cinta, ¿Cómo mostrar/visualizar la pestaña Desarrollador en la cinta de Excel 2007/2010/2013? Este artículo te dirá cómo mostrarla.
4. Luego haz clic en Desarrollador > Insertar > Botón de Comando (Control ActiveX), y dibuja cuatro botones entre los dos cuadros de lista. Ver captura de pantalla:
![]() | ![]() | ![]() |
Ahora cambia el nombre de los cuatro botones de comando con nuevos nombres.
5. Selecciona el primer botón de comando, haz clic en Propiedades, y en el panel Propiedades, dale el nombre BTN_moveAllRight, y escribe >> en el cuadro de texto junto a Título. Ver captura de pantalla:
6. Repite el paso 5 para cambiar el nombre de los últimos tres botones de comando con los siguientes nombres, y también escribe las diferentes flechas en los títulos. Ver captura de pantalla:
BTN_MoveSelectedRight
BTN_moveAllLeft
BTN_MoveSelectedLeft
![]() | ![]() | ![]() |
7. Haz clic derecho en el nombre de la hoja que contiene los cuadros de lista y los botones de comando, y selecciona Ver Código desde el menú contextual. Ver captura de pantalla:
8. Copia y pega el siguiente código macro en el script del Módulo, luego guarda el código y cierra la ventana de Microsoft Visual Basic para Aplicaciones. Ver 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. Luego ve a otra hoja y regresa a la hoja que contiene los cuadros de lista; ahora puedes ver que los datos de la lista se han cargado en el primer cuadro de lista. Y haz clic en los botones de comando para mover los elementos entre los dos cuadros de lista.
Mover selección
![]() | ![]() | ![]() |
Mover todo
![]() | ![]() | ![]() |
Las mejores herramientas de productividad para Office
Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de nuevas ventanas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!