¿Quieres llevar tus habilidades en Excel al siguiente nivel? Imagina poder simplificar la entrada de datos y mejorar la precisión de tus hojas de cálculo con una herramienta poderosa y fácil de usar: las listas desplegables de selección múltiple. En este artículo, te mostraremos cómo crear estas listas en Excel, permitiéndote seleccionar múltiples opciones de manera rápida y eficiente. Ya sea que estés organizando un evento, gestionando un proyecto o simplemente buscando mejores formas de manejar datos, dominar esta técnica te permitirá optimizar tu trabajo y destacar en el uso de Excel. ¡Sigue leyendo y descubre lo sencillo que es transformar tu forma de trabajar!
¿Sabías que Excel tiene una función que te permite crear una lista desplegable de selección múltiple? Si necesitas organizar y filtrar datos de manera eficiente, esta herramienta puede ser tu mejor aliada. En este artículo te enseñaremos paso a paso cómo crear una lista desplegable de selección múltiple en Excel, para que puedas optimizar tus procesos y mejorar tu productividad. No importa si eres principiante o tienes experiencia con la programación en Excel, ¡este tutorial es para todos! Sigue leyendo y descubre cómo dar un salto de calidad en el manejo de tus hojas de cálculo.
El artículo muestra cómo crear un menú desplegable de Excel que permita a los usuarios seleccionar varios elementos con o sin duplicados.
Excel ha recorrido un largo camino desde sus inicios e introduce cada vez más funciones útiles con cada nueva versión. En Excel 365, agregaron la capacidad de buscar dentro de listas de validación de datos, lo que supone un gran ahorro de tiempo cuando se trabaja con grandes conjuntos de datos. Sin embargo, incluso con esta nueva opción, Excel listo para usar solo permite seleccionar un elemento de una lista predefinida de opciones. Pero no temas, porque hay una solución. Al usar VBA, puede crear listas desplegables con múltiples selecciones. Con la capacidad de evitar duplicados y eliminar elementos incorrectos, esta función puede agilizar la entrada de datos y mejorar la precisión en sus hojas de cálculo de Excel.
>Cómo hacer que Excel sea desplegable con múltiples selecciones
Crear una lista desplegable de selección múltiple en Excel es un proceso de dos partes:
También funciona en orden inverso 🙂
Crear una lista desplegable normal
Para insertar una lista desplegable en Excel, utiliza la función Validación de datos. Los pasos varían ligeramente dependiendo de si los elementos de origen están en un rango normal, un rango con nombre o una tabla de Excel.
Según mi experiencia, la mejor opción es crear una lista de validación de datos a partir de una tabla. Como las tablas de Excel son dinámicas por naturaleza, un menú desplegable relacionado se expandirá o contraerá automáticamente a medida que agregue o elimine elementos de la tabla.
Para este ejemplo, usaremos la tabla con el nombre simple Tabla 1 que reside en A2:A25 en la captura de pantalla siguiente. Para hacer una lista de selección a partir de esta tabla, los pasos son:
=INDIRECT(«Table1[Items]»)
>El resultado será una lista desplegable expandible y actualizable automáticamente que solo permite seleccionando un elemento.
Para obtener más información, consulte Cómo crear una lista de validación de datos de Excel.
Inserte código VBA para permitir selecciones múltiples
Esta es la parte central del proceso que hace la magia. Para convertir una lista de selección única normal en un menú desplegable de selección múltiple, debe insertar uno de estos códigos en la parte posterior de su hoja de trabajo de destino:
Para agregar código VBA a su hoja de trabajo, siga estos pasos:
O puede hacer clic derecho en la pestaña de la hoja y elegir Ver código desde el menú contextual. Esto abrirá inmediatamente la ventana Código para una hoja determinada.
>¡Eso es todo! Cuando regrese a la hoja de trabajo, su lista desplegable le permitirá seleccionar varios elementos:
>Código VBA para seleccionar varios elementos en la lista desplegable
A continuación se muestra el código para hacer una lista de validación de datos que permita seleccionar múltiples elementos, incluidas selecciones repetidas:
Código VBA para seleccionar varios elementos en el menú desplegable de Excel
Opción Explícito
Privado Sub Hoja de cálculo_cambiar(porval Destino Como Rango)
Oscuro Tipo Delimitador Como Cadena
Oscuro rngDesplegable Como Rango
Oscuro valor antiguo Como Cadena
Oscuro nuevo valor Como Cadena
Tipo Delimitador = «, «
Si Destino.Recuento > 1 Entonces Salida Sub
En Error Reanudar Próximo
Colocar rngDropdown = Celdas.SpecialCells(xlCellTypeAllValidation)
En Error Ir a error de salida
Si rngDesplegable Es Nada Entonces Ir a error de salida
Si Intersección (Destino, rngDropdown) Es Nada Entonces
‘hacer nada
Demás
Aplicación.EnableEvents = FALSO
newValue = Destino.Valor Aplicación.Deshacer oldValue = Destino.Valor Destino.Value = nuevoValor
Si valorantiguo = «» Entonces
‘hacer nada
Demás
Si nuevoValor = «» Entonces
‘hacer nada
Demás
Destino.Value = oldValue & DelimiterType & newValue
‘agrega nuevo valor con delimitador
Fin Si
Fin Si
Fin Si
exitError: Aplicación.EnableEvents = Verdadero
Fin Sub
Privado Sub Hoja de cálculo_SelecciónCambio(porval Objetivo Como Rango)
Fin Sub
Cómo funciona este código:
- El código permite múltiples selecciones en todas las listas desplegables en una hoja determinada. No es necesario especificar la celda de destino o la referencia de rango en el código.
- El código es hoja de trabajo específicaasí que asegúrese de agregarlo a cada hoja donde desee permitir selecciones múltiples en las listas desplegables.
- Este código permite repeticiónes decir, seleccionar el mismo elemento varias veces.
- Los elementos seleccionados se separan con una coma y un espacio. Para cambiar el delimitador, reemplace «, » con el carácter que desee en DelimiterType = «, » (línea 7 en el código anterior).
Menú desplegable de selección múltiple de Excel sin duplicados
Al seleccionar de una lista grande, los usuarios a veces pueden elegir el mismo elemento más de una vez sin darse cuenta. El siguiente código resuelve el problema de los duplicados en una lista desplegable de validación de datos de selección múltiple. Permite a los usuarios elegir un artículo en particular sólo una vez. Si intenta seleccionar el mismo elemento nuevamente, no sucederá nada. Muy bien, ¿verdad?
Código VBA para crear un menú desplegable de selección múltiple sin repeticiones
Opción explícita
Sub privado Hoja de cálculo_cambiar(porval Destino Como Rango)
Oscuro rngDesplegable Como Rango
Oscuro valor antiguo Como Cadena
Oscuro nuevo valor Como Cadena
Oscuro Tipo Delimitador Como Cadena
Tipo Delimitador = «, «
Si Destino.Recuento > 1 Entonces Salida Sub
En Error Reanudar Próximo
Colocar rngDropdown = Celdas.SpecialCells(xlCellTypeAllValidation)
En Error Ir a error de salida
Si rngDesplegable Es Nada Entonces Ir a error de salida
Si Intersección (Destino, rngDropdown) Es Nada Entonces
‘hacer nada
Demás
Aplicación.EnableEvents = FALSO
newValue = Destino.Valor Aplicación.Deshacer oldValue = Destino.Valor Destino.Value = nuevoValor
Si valorantiguo <> «» Entonces
Si nuevoValor <> «» Entonces
Si valorantiguo = valornuevo O _ InStr(1, valor antiguo, tipo delimitador y valor nuevo) O _ InStr(1, oldValue, newValue y Reemplazar(DelimiterType, » «, «»)) Entonces
Destino.Valor = valorantiguo
Demás
Destino.Value = oldValue & DelimiterType & newValue
Fin Si
Fin Si
Fin Si
Fin Si
exitError: Aplicación.EnableEvents = Verdadero
Fin Sub
Privado Sub Hoja de cálculo_SelecciónCambio(porval Objetivo Como Rango)
Fin Sub
Menú desplegable de selección múltiple con eliminación de elementos
Cuando los usuarios necesitan seleccionar múltiples opciones pero pueden cometer errores o cambiar de opinión durante el proceso de selección, un menú desplegable de selección múltiple que permite eliminar elementos incorrectos puede ser un salvavidas.
Considere un escenario en el que necesita asignar varias tareas a los miembros del equipo mediante una lista desplegable. Con la funcionalidad predeterminada de Excel, la única forma de eliminar una tarea asignada incorrectamente es borrando todo el contenido de la celda y comenzando de nuevo. Con la capacidad de eliminar elementos individuales de la selección, el equipo puede modificar fácilmente las asignaciones de tareas, sin confusión ni errores.
El siguiente código implementa la funcionalidad de eliminación de elementos de una manera simple e intuitiva: el primer clic en un elemento lo agrega a la selección y un segundo clic en el mismo elemento lo elimina de la selección.
Código VBA para crear un menú desplegable de selección múltiple que permite eliminar elementos seleccionados
Opción Explícito
Privado Sub Hoja de cálculo_cambiar(porval Destino Como Rango)
Oscuro rngDesplegable Como Rango
Oscuro valor antiguo Como Cadena
Oscuro nuevo valor Como Cadena
Oscuro Tipo Delimitador Como Cadena
Tipo Delimitador = «, «
Oscuro DelimitadorRecuento Como Entero
Oscuro Tipo de objetivo Como Entero
Oscuro i Como Entero
Oscuro arr() Como Cadena
Si Destino.Recuento > 1 Entonces Salida Sub
En Error Reanudar Próximo
Colocar rngDropdown = Celdas.SpecialCells(xlCellTypeAllValidation)
En Error Ir a error de salida
Si rngDesplegable Es Nada Entonces Ir a exitError TargetType = 0 TargetType = Destino.Validación.Tipo
Si Tipo de objetivo = 3 Entonces ‘su tipo de validación es «lista»
Aplicación.ScreenUpdating = FALSO
Aplicación.EnableEvents = FALSO
newValue = Destino.Valor Aplicación.Deshacer oldValue = Destino.Valor Destino.Value = nuevoValor
Si valorantiguo <> «» Entonces
Si nuevoValor <> «» Entonces
Si valorantiguo = valornuevo O valorantiguo = nuevoValor y Reemplazar(DelimiterType, » «, «») O valorantiguo = valor nuevo y tipo de delimitador Entonces ‘deja el valor si solo hay uno en la lista
valorantiguo = Reemplazar(Valorantiguo, TipoDelimitador, «») valorantiguo = Reemplazar(Valorantiguo, Reemplazar(TipoDelimitador, » «, «»), «») Destino.Valor = valorantiguo
De lo contrario si InStr(1, valor antiguo, tipo de delimitador y valor nuevo) O InStr(1, valor antiguo, » » y valor nuevo y tipo de delimitador)Entonces
arr = Dividir(valorantiguo, TipoDelimitador)
Si No IsError(Application.Match(newValue, arr, 0)) = 0 Entonces
Destino.Value = oldValue & DelimiterType & newValue
Demás: Destino.Valor = «»
Para yo = 0 A UBound(llegar)
Si arr(i) <> nuevoValor Entonces
Destino.Valor = Destino.Valor & arr(i) & DelimiterType
Fin Si
Próximo i Destino.Valor = Izquierda(Destino.Valor, Len(Destino.Valor) – Len(DelimiterType))
Fin Si
De lo contrario si InStr(1, oldValue, newValue y Reemplazar(DelimiterType, » «, «»)) Entonces
valorantiguo = Reemplazar(Valorantiguo,Valornuevo, «») Destino.Valor = valorantiguo
Demás
Destino.Value = oldValue & DelimiterType & newValue
Fin Si
Destino.Valor = Reemplazar (Destino.Valor, Reemplazar (DelimiterType, » «, «») y Reemplazar (Tipo Delimitador, » «, «»), Reemplazar (Tipo Delimitador, » «, «»)) ‘elimina comas y espacios adicionales
Destino.Valor = Reemplazar (Destino.Valor, Tipo Delimitador y Reemplazar (Tipo Delimitador, » «, «»), Reemplazar (Tipo Delimitador, » «, «»))
Si Destino.Valor <> «» Entonces
Si Derecha(Destino.Valor, 2) = Tipo Delimitador Entonces ‘elimina el delimitador al final
Destino.Valor = Izquierda(Destino.Valor, Len(Destino.Valor) – 2)
Fin Si
Fin Si
Si InStr(1, Destino.Valor, Tipo Delimitador) = 1 Entonces ‘elimina el delimitador como primeros caracteres
Destino.Valor = Reemplazar (Destino.Valor, Tipo Delimitador, «»1, 1)
Fin Si
Si InStr(1, Destino.Valor, Reemplazar(TipoDelimitador, » «, «»)) = 1 Entonces
Destino.Valor = Reemplazar (Destino.Valor, Reemplazar (DelimiterType, » «, «»), «»1, 1)
Fin Si
CuentaDelimitador = 0
Para yo = 1 A Len(Destino.Valor)
Si InStr(i, Destino.Valor, Reemplazar(DelimiterType, » «, «»)) Entonces
ConteoDelimitador = ConteoDelimitador + 1
Fin Si
Próximo i
Si CuentaDelimitador = 1 Entonces ‘elimina el delimitador si es el último carácter
Destino.Valor = Reemplazar (Destino.Valor, Tipo Delimitador, «») Destino.Valor = Reemplazar(Destino.Valor, Reemplazar(DelimiterType, » «, «»), «»)
Fin Si
Fin Si
Fin Si
Aplicación.EnableEvents = Verdadero
Aplicación.ScreenUpdating = Verdadero
Fin Si
exitError: Aplicación.EnableEvents = Verdadero
Fin Sub
Privado Sub Hoja de cálculo_SelecciónCambio(porval Objetivo Como Rango)
Fin Sub
La siguiente demostración destaca cómo funciona el menú desplegable de selección múltiple con funcionalidad de eliminación en Excel. Los usuarios pueden seleccionar múltiples opciones de la lista de validación de datos y realizar ajustes sobre la marcha. ¡Un enfoque simplificado y eficaz para gestionar selecciones!
>Cómo hacer un menú desplegable de selección múltiple con delimitador personalizado
El carácter que separa los elementos de la selección se establece en el Tipo Delimitador parámetro. En todos los códigos, el valor predeterminado de este parámetro es «, » (una coma y un espacio) y se ubica en la línea 7. Para usar un separador diferente, puede reemplazar «, » con el carácter deseado. Por ejemplo:
- Para separar los elementos seleccionados con un espacio, utilice DelimiterType = » «.
- Para separar con punto y coma, utilice DelimiterType = «; » o DelimiterType = «;» (con o sin espacio, respectivamente).
- Para separar con una barra vertical, use DelimiterType = » | «.
Por ejemplo, si cambia el delimitador a una barra vertical, su lista de selección múltiple tendrá el siguiente aspecto:
>Cómo crear un menú desplegable con múltiples selecciones en líneas separadas
Para obtener cada selección en una línea separada en la misma celda, configure Tipo Delimitador a Vbcrlf. En VBA, es una constante para los caracteres de retorno de carro y avance de línea.
Más precisamente, cambia esta línea de código:
DelimiterType = «,»
a este:
DelimiterType = vbCrLf
Como resultado, cada elemento que seleccione de la lista desplegable aparecerá en una nueva línea:
>Cómo crear un menú desplegable de selección múltiple para columnas, filas y celdas específicas
Todos los códigos descritos en este tutorial funcionan en una hoja completa. Sin embargo, puede modificar fácilmente cualquiera de los códigos, de modo que solo se aplique a celdas, filas o columnas específicas, según sea necesario. Para esto, busque esta línea de código:
If rngDropdown Is Nothing Then GoTo exitError
Agregar inmediatamente después él, agregue una nueva línea que especifique dónde permitir selecciones múltiples, como se explica en los ejemplos siguientes.
Menú desplegable de selección múltiple para columnas específicas
Para permitir la selección de varios elementos en un cierta columnaagrega este código:
If Not Destination.Column = 4 Then GoTo exitError
Donde «4» es el número de la columna de destino. En este caso, el menú desplegable de selección múltiple solo estará habilitado en la columna D. En todas las demás columnas, las listas desplegables se limitarán a una única selección.
Apuntar varias columnasespecifique sus números usando este código:
If Destination.Column <> 4 And Destination.Column <> 6 Then GoTo exitError
En este caso, el menú desplegable de selección múltiple estará disponible en las columnas D (4) y F (6).
Menú desplegable de selección múltiple para ciertas filas
Para insertar varios menús desplegables en un fila específicausa este código:
If Not Destination.Row = 3 Then GoTo exitError
En este ejemplo, reemplace «3» con el número de fila donde desea habilitar los menús desplegables de selección múltiple.
Apuntar varias filasEl código es el siguiente:
If Destination.Row <> 3 And Destination.Row <> 5 Then GoTo exitError
Donde «3» y «5» son las filas donde se permite seleccionar varios elementos.
Múltiples selecciones en celdas específicas.
Para habilitar múltiples selecciones en células particularesagregue una de las siguientes líneas de código.
Para unicelular:
If Not Destination.Address = «$D$3» Then GoTo exitError
Para múltiples celdas:
If Destination.Address <> «$D$3» And Destination.Address <> «$F$6» Then GoTo exitError
Sólo recuerda reemplazar «$D$3» y «$F$6» con las direcciones de tus celdas objetivo.
Cómo habilitar la funcionalidad de selección múltiple en una hoja protegida
Para habilitar una función desplegable de selección múltiple en una hoja de trabajo protegida, simplemente inserte el siguiente código en la hoja de trabajo donde agregó el código principal.
Código VBA para permitir múltiples selecciones en la hoja protegida
Privado Sub Hoja de cálculo_SelecciónCambio(porval Objetivo Como Rango) ActiveSheet.Desproteger contraseña:=«contraseña»
En Error Ir a error de salida2
Si Validación.de.objetivo.Tipo = 3 Entonces
Demás
ActiveSheet.Proteger contraseña:=«contraseña»
Fin Si
Hecho:
Salida Sub
exitError2: Contraseña ActiveSheet.Protect:=«contraseña»
Fin Sub
Antes de agregar este código a su hoja de trabajo, recuerde reemplazar «contraseña» con la contraseña real que utilizó para proteger la hoja. Y este es el único cambio que hay que hacer. El código detectará automáticamente la presencia de una lista desplegable en una celda determinada y permitirá editar esa celda. En todas las demás celdas, la edición permanecerá restringida.
Nota. Tenga en cuenta que incluir su contraseña real en el código podría generar un riesgo de seguridad. Para garantizar la seguridad de su libro, guárdelo en un lugar seguro que esté protegido contra el acceso o uso no autorizado.
Ahí lo tiene: una lista desplegable de Excel con múltiples selecciones. ¡Agregar esta increíble característica a tus hojas de cálculo aumentará la precisión de tu entrada de datos y te ayudará a realizar tu trabajo más rápido!
Libro de práctica para descargar.
Menú desplegable de selección múltiple: ejemplos (archivo .xlsm)
Usted también podría estar interesado en
Cómo crear una lista desplegable de selección múltiple en Excel
Cómo crear una lista desplegable de selección múltiple en Excel
Excel es una herramienta muy poderosa utilizada por profesionales en diferentes áreas para organizar y analizar datos de manera eficiente. Una de las características más útiles de Excel es la capacidad de crear listas desplegables para facilitar la selección de opciones en una celda.
¿Qué es una lista desplegable de selección múltiple en Excel?
Una lista desplegable de selección múltiple en Excel es una función que permite al usuario elegir varias opciones de una lista predefinida. Esta funcionalidad es ideal cuando se necesita categorizar datos o asignar etiquetas a diferentes elementos.
¿Cómo crear una lista desplegable de selección múltiple en Excel?
A continuación, te mostraré cómo crear una lista desplegable de selección múltiple en Excel en unos sencillos pasos:
Conclusiones
Crear una lista desplegable de selección múltiple en Excel puede ser muy útil cuando necesitas organizar y categorizar datos. Siguiendo los pasos mencionados anteriormente, podrás utilizar esta función de manera efectiva en tus hojas de cálculo.
Si deseas profundizar más en el uso de Excel y sus características, te recomiendo visitar el sitio de soporte oficial de Microsoft Excel. Allí encontrarás valiosos recursos para mejorar tus habilidades y aprovechar al máximo esta poderosa herramienta.
El texto que has proporcionado es un código VBA para Excel que permite crear un menú desplegable de selección múltiple con funcionalidad de eliminación, junto con instrucciones sobre cómo modificarlo para adaptarse a diferentes escenarios. A continuación, te ofrezco un resumen en español de los puntos clave del código y sus funciones:
Resumen del Código
- Funcionalidad General:
– El código permite a los usuarios seleccionar múltiples elementos de una lista desplegable en Excel, asegurando que las selecciones sean manejadas y que las duplicaciones se eviten.
- Variables y Parámetros:
– DelimiterType
: Este parámetro se utiliza para definir el carácter que separa los elementos en la celda. Por defecto, es una coma seguida de un espacio («, «). Esto puede ser modificado para utilizar otros caracteres como puntos y comas, espacios o barras verticales.
- Selección Múltiple:
- El código permite seleccionar, agregar y eliminar elementos de la lista en la celda designada. Los usuarios pueden hacer esto mediante la modificación de las entradas en una celda que tiene la validación de datos configurada como lista.
- Manejo de Delimitadores:
– Se manejan los delimitadores para asegurar que no haya espacios ni comas sobrantes y que las selecciones se presenten adecuadamente en la celda.
- Condiciones de Selección:
– El código incluye diversas condiciones que se pueden ajustar para permitir múltiples selecciones solamente en ciertas columnas, filas o celdas específicas.
- Protección de Hojas:
- Se ofrece una forma de también permitir las selecciones en hojas de trabajo protegidas, desprotegiendo temporalmente la hoja para permitir la modificación.
Ejemplos de Personalización
- Separadores Personalizados: Puedes cambiar el separador de elementos en la selección modificando la línea
DelimiterType = ","
a tu delimitador preferido, comoDelimiterType = vbCrLf
para nuevas líneas.
- Restricciones Específicas: Puedes restringir el menú a ciertas columnas o filas agregando condiciones, por ejemplo:
- Para permitir solo en la columna D: If Not Destination.Column = 4 Then GoTo exitError
.
– Para permitir en filas específicas: If Not Destination.Row = 3 Then GoTo exitError
.
Advertencias de Seguridad
- Se recomienda no incluir contraseñas de protección de hojas directamente en el código sin consideraciones de seguridad, ya que esto puede presentar riesgos de acceso no autorizado.
Conclusión
Implementar un menú desplegable de selección múltiple en Excel con el manejo de delimitadores personalizados y opciones de restricción puede mejorar significativamente la precisión de la entrada de datos y la eficiencia del trabajo con listas. Este código y las instrucciones proporcionadas pueden servir como una herramienta útil para la gestión de datos en Excel.
Si necesitas realizar implementaciones específicas o tienes alguna pregunta sobre el código, házmelo saber y estaré encantado de ayudarte.
Simonyan: ¡Excelente artículo! La verdad es que nunca supe cómo hacer una lista desplegable en Excel hasta que un amigo me lo explicó, pero tu guía es mucho más clara. Ahora puedo organizar mis tareas de una manera muy práctica, ¡mil gracias!
Alan paul: ¡Qué buen artículo! Yo también me volví un pro en las listas desplegables hace poco y es impresionante cómo facilitan la vida. Recuerdo que al principio me costaba, pero después de seguir un par de tutoriales, fue pan comido. Este post está súper claro, ¡gracias por compartirlo!
Ovidio jose: ¡Genial el artículo! Yo también descubrí lo fácil que es hacer listas desplegables hace poco, y desde entonces ya no puedo vivir sin ellas. Al principio, me volví loco intentando entenderlo, pero después de leer unos tutoriales y experimentar un poco, se me hizo pan comido. ¡Gracias por compartirlo, ahora mis proyectos están mucho más organizados!
Cañaveral: ¡Totalmente de acuerdo, Simonyan! Yo también aprendí a hacer listas desplegables hace poco y, la verdad, me ha cambiado la vida en la organización de mis proyectos. Este artículo está súper bien explicado, así que gracias a la persona que lo escribió, ¡me vino de perlas para mejorar mis skills en Excel!