Skip to main content

Kutools para Office — Una Suite. Cinco Herramientas. Haz Más.

Seleccionar varios elementos en la lista desplegable de Excel – guía completa

Author Siluvia Last modified

Las listas desplegables en Excel son una herramienta fantástica para garantizar la consistencia de los datos y facilitar su ingreso. Sin embargo, por defecto, solo permiten seleccionar un único elemento. ¿Pero qué pasa si necesitas seleccionar varios elementos de la misma lista desplegable? Esta guía completa explorará 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.

A screenshot of the animated demo showing multiple selections in an Excel drop-down list.

Consejo: Antes de aplicar los siguientes métodos, asegúrate de haber creado listas desplegables en tus hojas de trabajo previamente. Si deseas saber cómo crear listas desplegables con validación de datos, sigue las instrucciones en este artículo: How to create data validation drop-down lists in Excel.

Habilitar selecciones múltiples en la lista desplegable

Esta sección proporciona dos métodos para ayudarte a habilitar selecciones múltiples en la lista desplegable en Excel.

Usando código VBA

Para permitir selecciones múltiples en una lista desplegable, puedes usar "Visual Basic for Applications" (VBA) en Excel. El script puede modificar el comportamiento de una lista desplegable para convertirla en una lista de selección múltiple. Por favor, sigue estos pasos.

Paso 1: Abrir el editor de la Hoja (Código)
  1. Abre la hoja de trabajo que contiene la lista desplegable en la que deseas habilitar la selección múltiple.
  2. Haz clic derecho en la pestaña de la hoja y selecciona "Ver Código" desde el menú contextual.
    A screenshot of the View Code option in the context menu of a sheet tab in Excel
Paso 2: Usar código VBA

Ahora copia el siguiente código VBA y pégalo en la ventana de la hoja (Código) que se ha abierto.

Código VBA: Habilitar selecciones múltiples en la 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

A screenshot of the VBA code pasted into the Excel VBA editor

Resultado

Cuando regreses a la hoja de trabajo, la lista desplegable te permitirá elegir varias opciones; consulta la demostración a continuación:

A screenshot of the animated demo showing multiple selections in an Excel drop-down list

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

Usando Kutools para Excel en pocos clics

Si no te sientes cómodo con VBA, una alternativa más fácil es la función "Lista desplegable de selección múltiple" de "Kutools para Excel". Esta herramienta fácil de usar simplifica la habilitación de selecciones múltiples en las listas desplegables, permitiéndote personalizar el separador y gestionar duplicados sin esfuerzo para satisfacer tus diferentes necesidades.

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

Después de instalar Kutools para Excel, ve a la pestaña "Kutools", selecciona "Lista desplegable" > "Lista desplegable de selección múltiple". Luego, necesitarás configurar lo siguiente.

  1. Especifica el rango que contiene la lista desplegable de la cual necesitas seleccionar varios elementos.
  2. Especifica el separador para los elementos seleccionados en la celda de la lista desplegable.
  3. Haz clic en "Aceptar" para completar la configuración.
Resultado

Ahora, cuando hagas clic en una celda con una lista desplegable en el rango especificado, aparecerá una lista al lado. Simplemente haz clic en el botón "+" junto a los elementos para agregarlos a la celda desplegable, y haz clic en el botón "-" para eliminar cualquier elemento que ya no quieras. Consulta la demostración a continuación:

A screenshot showing a demo of managing multiple selections in an Excel drop-down list using Kutools

Notas:
  • Marca la opción "Insertar salto de línea después del separador" si deseas mostrar los elementos seleccionados verticalmente dentro de la celda. Si prefieres una lista horizontal, deja esta opción desmarcada.
  • Marca la opción "Habilitar búsqueda" si deseas agregar una barra de búsqueda a tu lista desplegable.
  • Para aplicar esta función, descarga e instala Kutools para Excel primero.

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

Esta sección recopila los diferentes escenarios que pueden ser necesarios al habilitar selecciones múltiples en la lista desplegable de Validación de Datos.


Permitir elementos duplicados en la lista desplegable

Los duplicados pueden ser un problema cuando se permiten selecciones múltiples en una lista desplegable. El código VBA anterior no permite elementos duplicados en la lista desplegable. Si necesitas mantener elementos duplicados, prueba el código VBA en 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 puedes seleccionar varios elementos de las listas desplegables en la hoja de trabajo actual. Para repetir un elemento en una celda de la lista desplegable, sigue seleccionando ese elemento de la lista. Ver captura de pantalla:

A screenshot of the animated demo showing duplicate selections in an Excel drop-down list


Eliminar cualquier elemento existente de la lista desplegable

Después de seleccionar varios elementos de una lista desplegable, a veces puede ser necesario eliminar un elemento existente de la celda de la lista desplegable. Esta sección proporciona otro fragmento de código VBA para ayudarte a realizar esta tarea.

Código VBA: Eliminar cualquier elemento existente de la celda de la 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 te permite seleccionar varios elementos de una lista desplegable y eliminar fácilmente cualquier elemento que ya hayas elegido. Después de seleccionar varios elementos, si deseas eliminar uno específico, simplemente selecciónalo nuevamente de la lista.

A screenshot of the animated demo showing how to remove existing items from a drop-down list in Excel


Establecer un separador personalizado

El delimitador está configurado como una coma en los códigos VBA anteriores. Puedes modificar esta variable a cualquier carácter preferido para usarlo como separador de las selecciones de la lista desplegable. Aquí te mostramos cómo hacerlo:

Como puedes ver, los códigos VBA anteriores tienen la siguiente línea:

delimiter = ", "

Solo necesitas cambiar la coma por cualquier separador que necesites. Por ejemplo, si deseas separar los elementos con punto y coma, cambia la línea a:

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

Definir un rango específico

Los códigos VBA anteriores se aplican a todas las listas desplegables en la hoja de trabajo actual. Si solo quieres que los códigos VBA se apliquen a un cierto rango de listas desplegables, puedes especificar el rango en el código VBA anterior de la siguiente manera.

Como puedes ver, los códigos VBA anteriores tienen la siguiente línea:

Set TargetRange = Me.UsedRange

Solo necesitas cambiar la línea a:

Set TargetRange = Me.Range("C2:C10")
Nota: Aquí C2:C10 es el rango que contiene la lista desplegable que deseas configurar para selecciones múltiples.

Ejecutar en una hoja de trabajo protegida

Imagina que has protegido una hoja de trabajo con la contraseña "123" y configuraste las celdas de la lista desplegable como "Desbloqueadas" antes de activar la protección, asegurándote de que la función de selección múltiple siga activa después de la protección. Sin embargo, los códigos VBA mencionados anteriormente no funcionan en este caso, y esta sección describe otro script VBA diseñado específicamente para manejar la funcionalidad de selección múltiple en una hoja de trabajo protegida.

Código VBA: Habilitar selección múltiple en la 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úrate de reemplazar “yourPassword” en la línea pswd = "yourPassword" con la contraseña real que usas para proteger la hoja de trabajo. Por ejemplo, si tu contraseña es "abc123", entonces la línea debería ser pswd = "abc123".

Al habilitar selecciones múltiples en las listas desplegables de Excel, puedes mejorar enormemente la funcionalidad y flexibilidad de tus hojas de trabajo. Ya sea que te sientas cómodo con la codificación VBA o prefieras una solución más directa como Kutools, ahora tienes la capacidad de transformar tus listas desplegables estándar en herramientas dinámicas de selección múltiple. Con estas habilidades, estás equipado para crear documentos de Excel más dinámicos y fáciles de usar. Para aquellos ansiosos por profundizar en las capacidades de Excel, nuestro sitio web cuenta con una gran cantidad de tutoriales. Descubre más consejos y trucos de Excel aquí.

Las mejores herramientas de productividad para Office

🤖 Kutools AI Aide: Revoluciona el análisis de datos basado 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 identificar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda por varios criterios | Búsqueda por varios valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Cree rápidamente una lista desplegable | Lista desplegable dependiente | Lista desplegable de selección múltiple....
Administrador de columnas: Agregar 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 | Administrador de Libro de trabajo y Hoja de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Cifrar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtrar celdas con fuente en negrita/cursiva/tachado...)...
Los15 principales conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres específicos, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas de combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) ... y más
Utiliza Kutools en tu idioma preferido: admite inglés, español, alemán, francés, chino y más de40 idiomas adicionales.

Mejora tu dominio de 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 incorpora la interfaz de pestañas en 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 hacerlo en ventanas separadas.
  • ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!

Todos los complementos de Kutools. Un solo instalador

El paquete Kutools for Office agrupa complementos para Excel, Word, Outlook y PowerPoint junto con Office Tab Pro, ideal para equipos que trabajan en varias aplicaciones de Office.

Excel Word Outlook Tabs PowerPoint
  • Suite todo en uno: complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
  • Un solo instalador, una licencia: configuración en minutos (compatible con MSI)
  • Mejor juntos: productividad optimizada en todas las aplicaciones de Office
  • Prueba completa de30 días: sin registro ni tarjeta de crédito
  • La mejor relación calidad-precio: ahorra en comparación con la compra individual de complementos