TRUCO: para que Excel permita listas desplegables con varios valores activados (necesitas VBA, sigue los pasos)
Excel no permite multiselección en listas desplegables de forma nativa.
La validación de datos solo deja elegir un valor.
Pero sí puedes hacerlo con VBA (macros), que es la solución habitual.
Opción recomendada: desplegable múltiple con VBA
1. Crear la lista desplegable normal
Supongamos:
-
Lista de opciones en
Hoja2!A1:A10 -
Celda con desplegable:
C2:C100
Pasos
-
Selecciona
C2:C100 - Datos → Validación de datos
- Permitir → Lista
- Origen:
=Hoja2!$A$1:$A$10
Ahora ya tienes un desplegable simple.
2. Activar multiselección con VBA
Abrir el editor VBA
Pulsa:
ALT + F11
En el panel izquierdo:
Haz doble clic sobre la hoja donde está el desplegable.
Ejemplo:
-
Hoja1 (Ventas)
Pega este código
Private Sub Worksheet_Change(ByVal Target As Range)
Dim OldValue As String
Dim NewValue As String
On Error GoTo ExitSub
If Target.CountLarge > 1 Then GoTo ExitSub
If Intersect(Target, Range("C2:C100")) Is Nothing Then GoTo ExitSub
Application.EnableEvents = False
NewValue = Target.Value
Application.Undo
OldValue = Target.Value
If OldValue = "" Then
Target.Value = NewValue
Else
If InStr(OldValue, NewValue) = 0 Then
Target.Value = OldValue & ", " & NewValue
Else
Target.Value = OldValue
End If
End If
ExitSub:
Application.EnableEvents = True
End Sub
Resultado
Si seleccionas:
Mañana
y luego:
Tarde
la celda quedará:
Mañana, Tarde
Adaptarlo a otras columnas
Esta parte:
Range("C2:C100")
define dónde funciona.
Puedes cambiarla por:
Range("D:D")
o:
Range("B2:B500")
Variante avanzada: quitar opciones seleccionadas
También puede hacerse para que:
- si vuelves a elegir “Tarde”
- se elimine de la lista
Ejemplo:
Mañana, Tarde
→ eliges otra vez “Tarde”
→ queda:
Mañana
Recomendación para tu supermercado
Esto es muy útil para campos como:
- Observaciones
- Categorías secundarias
- Funciones del empleado
- Turnos compatibles
- Departamentos
- Métodos de pago admitidos
- Etiquetas internas
Importante
El archivo debe guardarse como:
.xlsm
(libro habilitado para macros)
Si lo guardas como .xlsx, perderás el VBA.
Comentarios
Publicar un comentario