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

Seleccione varios elementos en Lista desplegable de Excel – guía completa

AutorSiluvia Fecha de modificación

Las listas desplegables de Excel son una herramienta excelente para garantizar la coherencia de los datos y facilitar su introducción. Sin embargo, de forma predeterminada solo permiten seleccionar un único elemento. ¿Y si necesita elegir varios elementos de la misma lista desplegable? Esta guía completa explora métodos para habilitar selecciones múltiples en las listas desplegables de Excel, gestionar duplicados, establecer separadores personalizados y definir el ámbito de estas listas.

Una captura de pantalla de la demostración animada que muestra selecciones múltiples en una lista desplegable de Excel.

Consejo: Antes de aplicar los siguientes métodos, asegúrese de haber creado previamente Lista desplegable en sus hojas de cálculo. Si desea saber cómo crear Lista desplegable de validación de datos, siga las instrucciones de este artículo:Cómo crear Lista desplegable de validación de datos en Excel.

Habilitar selecciones múltiples en Lista desplegable

Esta sección presenta dos métodos para ayudarle a habilitar selecciones múltiples en una lista desplegable de Excel.

Usar código VBA

Para habilitar selecciones múltiples en una lista desplegable, puede usar Visual Basic para Aplicaciones (VBA) en Excel. Con un script, podrá modificar el comportamiento de la lista desplegable y convertirla en una lista de selección múltiple. Siga estos pasos.

Paso 1: Abrir el editor de hoja (Código)
  1. Abra la hoja de cálculo que contiene la lista desplegable para la que desea habilitar la selección múltiple.
  2. Haga clic con el botón derecho en la pestaña de la hoja y seleccione «Ver código» en el menú contextual.
    Una captura de pantalla de la opción Ver código en el menú contextual de una pestaña de hoja en Excel
Paso 2: Usar código VBA

Ahora copie el siguiente código VBA y péguelo en la ventana de código de la hoja que tiene abierta.

Código VBA: Habilita selecciones múltiples en una lista desplegable de Excel.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    Dim delimiter As String
    Dim TargetRange As Range

    Set TargetRange = Me.UsedRange ' Users can change target range here
    delimiter = ", " ' Users can change the delimiter here

    If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
    On Error Resume Next
    Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then Exit Sub
    Application.EnableEvents = False

    xValue2 = Target.Value
    Application.Undo
    xValue1 = Target.Value
    Target.Value = xValue2
    If xValue1 <> "" And xValue2 <> "" Then
        If Not (xValue1 = xValue2 Or _
                InStr(1, xValue1, delimiter & xValue2) > 0 Or _
                InStr(1, xValue1, xValue2 & delimiter) > 0) Then
            Target.Value = xValue1 & delimiter & xValue2
        Else
            Target.Value = xValue1
        End If
    End If

    Application.EnableEvents = True
    On Error GoTo 0
End Sub

Una captura de pantalla del código VBA pegado en el editor de VBA de Excel

Resultado

Al regresar a la hoja de cálculo, la Lista desplegable le permitirá elegir varias opciones; consulte la demostración a continuación:

Una captura de pantalla de la demostración animada que muestra selecciones múltiples en una lista desplegable de Excel

Notas:
El código VBA anterior:
  • Se aplica a todas las validaciones de datos de lista desplegable en la hoja de trabajo actual, tanto a las existentes como a las que se creen en el futuro.
  • Le impide seleccionar el mismo elemento más de una vez en cada lista desplegable.
  • Utiliza la coma como separador para los números de elementos seleccionados. Para usar otros delimitadores, por favor consulta esta sección para cambiar el separador.

Usar Kutools para Excel en unos pocos clics

Si no se siente cómodo con VBA, una alternativa más sencilla es la función «Hacer lista desplegable con selecciones múltiples» de Kutools para Excel. Esta herramienta intuitiva le permite habilitar selecciones múltiples en listas desplegables de forma rápida y sencilla, personalizar el separador y gestionar duplicados sin esfuerzo, adaptándose perfectamente a sus necesidades.

Kutools para Excelofrece más de 300 funciones avanzadas para simplificar tareas complejas, potenciando la creatividad y la eficiencia.Integrado con capacidades de inteligencia artificial, Kutools automatiza tareas con precisión, haciendo que la gestión de datos resulte sencilla.Información detallada de Kutools para Excel...         Prueba gratuita...

Tras instalar Kutools para Excel, vaya a la pestaña «Kutools», seleccione «Lista desplegable» > «Crear lista desplegable con selecciones múltiples». A continuación, configúrela tal como se indica a continuación.

  1. Especifique el rango que contiene las listas desplegables de las que necesita seleccionar varios elementos.
  2. Especifique el separador para los números de elementos seleccionados en la celda de la lista desplegable.
  3. Haga clic en «Aceptar» para finalizar la configuración.
    Una captura de pantalla de la pantalla de configuración de la lista desplegable de selección múltiple de Kutools con opciones para rango y separador
Resultado

Ahora, al hacer clic en una celda con una lista desplegable en el rango limitado, aparecerá un cuadro de lista junto a ella. Simplemente pulse el botón «+» situado junto a los elementos para añadirlos a la celda desplegable o haga clic en el botón «–» para eliminar los que ya no desee. Consulte la demostración a continuación:

Una captura de pantalla que muestra una demostración de cómo gestionar selecciones múltiples en una lista desplegable de Excel mediante Kutools

Notas:
  • Marque la opción «Insertar salto de línea después del separador» si desea mostrar los números de elementos seleccionados verticalmente dentro de la celda. Si prefiere una lista horizontal, deje esta opción desmarcada.
  • Marque la opción «Habilitar función de búsqueda» si desea incluir una barra de búsqueda en su lista desplegable.
  • Para aplicar esta función, por favor descargue e instale Kutools para Excel primero.

Más operaciones para Lista desplegable de selección múltiple

Esta sección recoge diversos escenarios que pueden presentarse al habilitar selecciones múltiples en la lista desplegable de validación de datos.


Permitir elementos duplicados en Lista desplegable

Los duplicados pueden convertirse en un problema cuando se permiten selecciones múltiples en una lista desplegable. El código VBA anterior evita que aparezcan elementos duplicados en la lista. Si necesita conservar los elementos duplicados, pruebe el código VBA de esta sección.

Código VBA: Permitir duplicados en la Lista desplegable de validación de datos

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    Dim delimiter As String
    Dim TargetRange As Range

    Set TargetRange = Me.UsedRange ' Users can change target range here
    delimiter = ", " ' Users can change the delimiter here

    If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
    On Error Resume Next
    Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then Exit Sub
    Application.EnableEvents = False

    xValue2 = Target.Value
    Application.Undo
    xValue1 = Target.Value
    Target.Value = xValue2
    If xValue1 <> "" And xValue2 <> "" Then
        Target.Value = xValue1 & delimiter & xValue2
    End If

    Application.EnableEvents = True
    On Error GoTo 0
End Sub
Resultado

Ahora puede seleccionar varios elementos de la lista desplegable en la hoja de trabajo actual. Para repetir un elemento en una celda con lista desplegable, basta con volver a seleccionarlo en la lista. Consulte la captura de pantalla:

Una captura de pantalla de la demostración animada que muestra selecciones duplicadas en una lista desplegable de Excel


Eliminar elementos existentes de Lista desplegable

Tras seleccionar varios elementos de una lista desplegable, es posible que necesite eliminar alguno de los ya incluidos en la celda. Esta sección le ofrece otro fragmento de código VBA para facilitarle esta tarea.

Código VBA: Eliminar elementos existentes de la celda Lista desplegable

Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated by Extendoffice 20240118
    Dim xRngDV As Range
    Dim TargetRange As Range
    Dim oldValue As String
    Dim newValue As String
    Dim delimiter As String
    Dim allValues As Variant
    Dim valueExists As Boolean
    Dim i As Long
    Dim cleanedValue As String

    Set TargetRange = Me.UsedRange ' Set your specific range here
    delimiter = ", " ' Set your desired delimiter here

    If Target.CountLarge > 1 Then Exit Sub

    ' Check if the change is within the specific range
    If Intersect(Target, TargetRange) Is Nothing Then Exit Sub

    On Error Resume Next
    Set xRngDV = Target.SpecialCells(xlCellTypeAllValidation)
    If xRngDV Is Nothing Or Target.Value = "" Then
        ' Skip if there's no data validation or if the cell is cleared
        Application.EnableEvents = True
        Exit Sub
    End If
    On Error GoTo 0

    If Not Intersect(Target, xRngDV) Is Nothing Then
        Application.EnableEvents = False
        newValue = Target.Value
        Application.Undo
        oldValue = Target.Value
        Target.Value = newValue

        ' Split the old value by delimiter and check if new value already exists
        allValues = Split(oldValue, delimiter)
        valueExists = False
        For i = LBound(allValues) To UBound(allValues)
            If Trim(allValues(i)) = newValue Then
                valueExists = True
                Exit For
            End If
        Next i

        ' Add or remove value based on its existence
        If valueExists Then
            ' Remove the value
            cleanedValue = ""
            For i = LBound(allValues) To UBound(allValues)
                If Trim(allValues(i)) <> newValue Then
                    If cleanedValue <> "" Then cleanedValue = cleanedValue & delimiter
                    cleanedValue = cleanedValue & Trim(allValues(i))
                End If
            Next i
            Target.Value = cleanedValue
        Else
            ' Add the value
            If oldValue <> "" Then
                Target.Value = oldValue & delimiter & newValue
            Else
                Target.Value = newValue
            End If
        End If

        Application.EnableEvents = True
    End If
End Sub
Resultado

Este código VBA le permite seleccionar varios elementos en una lista desplegable y eliminar fácilmente cualquiera de los ya elegidos. Tras haber seleccionado varios elementos, si desea eliminar uno específico, basta con volver a seleccionarlo en la lista.

Una captura de pantalla de la demostración animada que muestra cómo eliminar elementos existentes de una lista desplegable en Excel


Establecer un separador personalizado

En los códigos VBA anteriores, el delimitador está configurado como coma. Puede modificar esta variable y usar cualquier carácter que prefiera como separador en las selecciones de la lista desplegable. A continuación se explica cómo hacerlo:

Como puede observar, todos los códigos VBA anteriores incluyen la siguiente línea:

delimiter = ", "

Solo debe cambiar la coma por el separador que prefiera. Por ejemplo, si desea separar los elementos mediante punto y coma, modifique la línea de la siguiente manera:

delimiter = "; "
Nota: Para cambiar el delimitador a un carácter de nueva línea en estos códigos VBA, modifique esta línea de la siguiente manera:
delimiter = vbNewLine

Establecer un Rango limitado

Los códigos VBA anteriores se aplican a todas las listas desplegables de la hoja de trabajo actual. Si desea que los códigos VBA afecten únicamente a un rango específico de listas desplegables, puede especificar dicho rango en el código VBA tal como se muestra a continuación.

Como puede observar, todos los códigos VBA anteriores incluyen la siguiente línea:

Set TargetRange = Me.UsedRange

Solo debe modificar la línea de la siguiente manera:

Set TargetRange = Me.Range("C2:C10")
Nota: Aquí C2:C10 es el rango que contiene las Lista desplegable que desea configurar como selecciones múltiples.

Ejecutar en una hoja protegida

Imagine que ha protegido una hoja de cálculo con la contraseña "123" y ha marcado previamente las celdas con lista desplegable como «Desbloqueadas» antes de aplicar la protección, asegurando así que la función de selección múltiple siga activa tras proteger la hoja. Sin embargo, los códigos VBA mencionados anteriormente no funcionan en este escenario; por ello, esta sección presenta otro script VBA diseñado específicamente para gestionar la funcionalidad de selección múltiple en una hoja protegida.

Código VBA: Habilitar selección múltiple en Lista desplegable sin duplicados


Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated by Extendoffice 20240118
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    Dim delimiter As String
    Dim TargetRange As Range
    Dim isProtected As Boolean
    Dim pswd As Variant

    Set TargetRange = Me.UsedRange ' Set your specific range here
    delimiter = ", " ' Users can change the delimiter here

    If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
    
    ' Check if sheet is protected
    isProtected = Me.ProtectContents
    If isProtected Then
        ' If protected, temporarily unprotect. Adjust or remove the password as needed.
        pswd = "yourPassword" ' Change or remove this as needed
        Me.Unprotect Password:=pswd
    End If

    On Error Resume Next
    Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then
        If isProtected Then Me.Protect Password:=pswd
        Exit Sub
    End If
    Application.EnableEvents = False

    xValue2 = Target.Value
    Application.Undo
    xValue1 = Target.Value
    Target.Value = xValue2
    If xValue1 <> "" And xValue2 <> "" Then
        If Not (xValue1 = xValue2 Or _
                InStr(1, xValue1, delimiter & xValue2) > 0 Or _
                InStr(1, xValue1, xValue2 & delimiter) > 0) Then
            Target.Value = xValue1 & delimiter & xValue2
        Else
            Target.Value = xValue1
        End If
    End If

    Application.EnableEvents = True
    On Error GoTo 0

    ' Re-protect the sheet if it was protected
    If isProtected Then
        Me.Protect Password:=pswd
    End If
End Sub
Nota: En el código, asegúrese de sustituir “yourPassword” en la línea pswd = «yourPassword» por la contraseña real que utiliza para proteger la hoja de cálculo. Por ejemplo, si su contraseña es "abc123", la línea debería ser pswd = "abc123".

Al habilitar selecciones múltiples en las listas desplegables de Excel, potenciará notablemente la funcionalidad y flexibilidad de sus hojas de cálculo. Tanto si se siente cómodo con la programación VBA como si prefiere una solución más directa como Kutools, ahora dispone de los recursos necesarios para transformar sus listas desplegables estándar en herramientas dinámicas de selección múltiple. Con estas habilidades, estará preparado para crear documentos de Excel más dinámicos y fáciles de usar. Si desea profundizar aún más en las capacidades de Excel, nuestro sitio web ofrece una amplia variedad de tutoriales.Descubra más consejos y trucos de Excel aquí.

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 VLookup con Múltiples Criterios  |  Búsqueda VLookup con Múltiples Valores  |   VLookup entre Varias Hojas   |   Coincidencia difusa....
Lista desplegable avanzada:Crear Rápidamente una Lista Desplegable   |  Lista Desplegable Dependiente   |  Lista Desplegable con Selección Múltiple....
Gestor de Columnas:Añadir un Número Específico de Columnas|Mover Columnas|Alternar el Estado de Visibilidad de las 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 de 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 HerramientasCombinar y Dividir(Combinar filas avanzado,Dividir celdas, ...)|... y 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 sin precedentes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...


Office Tab Aporta la 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 independientes.
  • ¡Aumente su productividad en un 50 % y ahorre cientos de clics del ratón cada día!

Todos los complementos de Kutools. Un solo instalador.

Kutools for Office es un conjunto que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, lo que lo convierte en la opción ideal para equipos que trabajan con distintas aplicaciones de Office.

ExcelWordOutlookTabsPowerPoint
  • Suite todo en uno— Complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
  • Un instalador, una licencia— configuración en minutos (listo para MSI)
  • Funcionan mejor juntos— productividad optimizada en todas las aplicaciones de Office
  • Prueba gratuita de 30 días con todas las funciones— sin registro, sin tarjeta de crédito
  • La mejor relación calidad-precio— ahorro respecto a comprar complementos individuales