KutoolsforOffice — Una solución, cinco potentes herramientas.Lograr más con menos esfuerzo.Venta de marzo: 20 % de descuento

¿Cómo mover elementos rápidamente entre dos cuadros de lista en Excel?

AutorSun Fecha de modificación

¿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.

una captura de pantalla que muestra los cuadros de lista antes de mover elementosuna captura de pantalla de una flechauna captura de pantalla que muestra los cuadros de lista después de mover elementos

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.

una captura de pantalla de los datos de origen

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

una captura de pantalla de cómo nombrar los datos de origen en el cuadro Nombre

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:

una captura de pantalla de la selección del control Cuadro de lista en la pestaña Programadoruna captura de pantalla de la flecha derechauna captura de pantalla que muestra dos cuadros de lista creados

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:

una captura de pantalla de la selección del control Botón de comandouna captura de pantalla de una flecha derecha 1una captura de pantalla que muestra los botones de comando creados

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:

una captura de pantalla que muestra cómo cambiar las propiedades del botón de comando

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

una captura de pantalla del segundo botón de comando tras cambiar sus propiedadesuna captura de pantalla del tercer botón de comando tras cambiar sus propiedadesuna captura de pantalla del cuarto botón de comando tras cambiar sus propiedades

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:

una captura de pantalla de la apertura del editor de código VBA

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

una captura de pantalla que muestra cómo utilizar el código VBA

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.

una captura de pantalla que muestra los datos de origen en un cuadro de lista tras ejecutar el código VBA

Mover selección

una captura de pantalla del movimiento de elementos de un cuadro de lista a otro uno por unouna captura de pantalla de la flechauna captura de pantalla que muestra dos elementos movidos al cuadro de lista de la derecha

Mover todo

una captura de pantalla que indica qué botón de comando se puede usar para mover todos los elementos de una lista a otra simultáneamenteuna captura de pantalla de la flecha 2una captura de pantalla que muestra todos los elementos movidos de un cuadro de lista a otro simultáneamente

Las mejores herramientas de productividad para Office

🤖KUTOOLS AI Asistente: Revolucione Análisis de datos basándose en:Ejecución Inteligente   |  Generar código|  Crear fórmulas personalizadas  |  Analizar datos y generar gráficos|  Invocar Funciones mejoradas
Funciones populares:Buscar, resaltar o Marcar duplicados   |  Eliminar filas en blanco   |  Combinar Columnas o celdas sin perder datos   |   Redondeo sin usar fórmulas...
Super BUSCARV:Búsqueda vertical (VLookup) con múltiples criterios  |  Búsqueda vertical (VLookup) con múltiples valores  |   Búsqueda vertical (VLookup) entre varias hojas   |   Coincidencia difusa....
Lista desplegable avanzada:Crear rápidamente una lista desplegable   |  Lista desplegable dependiente   |  Lista desplegable de selección múltiple....
Gestor de columnas:Añadir un número específico de columnas|Mover columnas|Alternar el estado de visibilidad de columnas ocultas|Comparar rangos y columnas...
Funciones destacadas:Cuadrícula de enfoque   |  Vista de diseño   |Barra de fórmulas mejorada   | Gestor de libros y hojas   |  Biblioteca de recursos(Texto automático)|  Selector de Fecha   |  Combinar Hojas de Cálculo  |  Cifrar/Descifrar celdas   | Enviar correos electrónicos desde una lista   |  Super Filtro   |   Filtro especial(Filtrar celdas con fuente en negrita/cursiva/tachado...) ...
Principales conjuntos de herramientas 15:12 Herramientasde texto(Agregar texto,Eliminar caracteres específicos, ...)|   50+Tiposde gráfico(Diagrama de Gantt, ...)|   40+ Fórmulas prácticas(Calcular la edad basada en la fecha de nacimiento, ...)|   19 Herramientasde inserción(Insertar Código QR,Insertar imagen desde ruta, ...)|   12 Herramientasde conversión(Convertir a palabras,Conversión de moneda, ...)|   7 Herramientasde combinación y división(Combinar filas avanzado,Dividir celdas, ...)|...y muchas más
Use Kutools en su idioma preferido: compatible con inglés, español, alemán, francés, chino y 40+ más idiomas.¡

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.

ExcelWordOutlookTabsPowerPoint
  • 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