Seleccione varios elementos en Lista desplegable de Excel – guía completa
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.

- Permitir elementos duplicados
- Eliminar cualquier elemento existente
- Establecer un separador personalizado
- Establecer un Rango limitado
- Ejecutar en una hoja protegida
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)
- Abra la hoja de cálculo que contiene la lista desplegable para la que desea habilitar la selección múltiple.
- Haga clic con el botón derecho en la pestaña de la hoja y seleccione «Ver código» en el menú contextual.

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

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

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.
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.
- Especifique el rango que contiene las listas desplegables de las que necesita seleccionar varios elementos.
- Especifique el separador para los números de elementos seleccionados en la celda de la lista desplegable.
- Haga clic en «Aceptar» para finalizar la configuración.
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:

- 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:

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.

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 = "; "
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")
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
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í.
Artículos Relacionados
Autocompletar al escribir en una lista desplegable de Excel
Si tienes una lista desplegable de validación de datos con muchos valores, tendrás que desplazarte por la lista para encontrar el adecuado o escribir directamente toda la palabra en el cuadro. Pero ¿y si existiera un método que permitiera autocompletar al teclear solo la primera letra? ¡Todo sería mucho más sencillo! Este tutorial te muestra cómo resolver este problema.
Crear una lista desplegable desde otro libro en Excel
Es bastante sencillo crear una lista desplegable de validación de datos entre hojas dentro del mismo libro. Pero, ¿qué ocurre si los datos que necesita para la validación están en otro libro? En este tutorial aprenderá, paso a paso, cómo crear una lista desplegable en Excel usando datos de otro libro.
Crear una lista desplegable con búsqueda en Excel
Cuando una lista desplegable contiene numerosos valores, encontrar el adecuado puede resultar complicado. Anteriormente presentamos un método para autocompletar la lista al escribir la primera letra en el cuadro desplegable. Además del autocompletado, también puedes hacer que la lista sea buscable, lo que mejora significativamente la eficiencia a la hora de localizar los valores correctos. Para lograrlo, prueba el método explicado en este tutorial.
Rellena automáticamente otras celdas al seleccionar un valor en una lista desplegable de Excel
Imagina que has creado una lista desplegable a partir de los valores del rango B8:B14. Al elegir cualquier opción de esa lista, quieres que el valor correspondiente del rango C8:C14 se complete automáticamente en una celda específica. ¡Los métodos que te mostramos en este tutorial te ayudarán a lograrlo sin esfuerzo!
Las mejores herramientas de productividad para Office
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.
- 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
Tabla de contenidos
- Habilitar selecciones múltiples
- Usar código VBA
- Usar Kutools para Excel en unos pocos clics
- Más operaciones
- Permitir elementos duplicados
- Eliminar cualquier elemento existente
- Establecer un separador personalizado
- Establecer un Rango limitado
- Ejecutar en una hoja protegida
- Artículos Relacionados
- Las Mejores Herramientas de Productividad para Office
- Comentarios

