¿Cómo crear listas desplegables dinámicas en cascada en Excel?
Es posible que ya sepas cómo crear una lista desplegable de validación en cascada en Excel. Pero, ¿cómo crear cuadros de lista dinámicos en cascada en Excel? Este artículo presenta un método con VBA para lograrlo.
Crear cuadros de lista dinámicos en cascada con código VBA
Crear cuadros de lista dinámicos en cascada con código VBA
Como se muestra en la siguiente captura de pantalla, debe crear un cuadro de lista principal con los valores únicos de la columna *Bebida* y, según la selección realizada en este cuadro, mostrar todos los valores correspondientes en el segundo cuadro de lista. El siguiente código VBA le ayudará a lograrlo. Siga estos pasos.

1. En primer lugar, extraiga todos los valores únicos de la columna Bebida. Seleccione una celda en blanco e introduzca la fórmula matricial =IFERROR(INDEX($A$2:$A$11, MATCH(0,COUNTIF($J$1:J1, $A$2:$A$11), 0)),«») en la Barra de fórmulas y, a continuación, pulse las teclas Ctrl + Mayús + Intro. Después, arrastre el controlador de relleno para obtener todos los valores únicos. Vea la captura de pantalla:

Nota: En la fórmula, $A$2:$A$11 es el rango del que se extraerán los valores únicos. J1 es la celda situada justo encima de donde se introduce la fórmula.
Consejo: Si la fórmula resulta demasiado difícil de recordar y utilizar, la utilidad Seleccionar Celdas Duplicadas/Únicas de Kutools para Excel será una excelente opción para extraer rápidamente todos los valores únicos de una columna.
Seleccione la columna de la que desea extraer los valores únicos. A continuación, active la utilidad haciendo clic en Kutools > Seleccionar > Seleccionar Celdas Duplicadas/Únicas. En el cuadro de diálogo Seleccionar Celdas Duplicadas/Únicas, seleccione la opción Valores Únicos (Incluir el primer duplicado) y haga clic en el botón Aceptar. Así se seleccionarán todos los valores únicos de la columna. ¡Cópielos y péguelos en un lugar nuevo! Vea la captura de pantalla:

Kutools para Excel: con más de 200 complementos útiles para Excel, pruébelos gratis sin limitaciones durante 60 días.¡Descargue y pruebe gratis ahora!
2. Inserte dos cuadros de lista por separado haciendo clic en Programador > Insertar > Cuadro de lista (control ActiveX). Vea la captura de pantalla:

3. Haga clic con el botón derecho en el cuadro de lista principal y seleccione Propiedades en el menú contextual. En el cuadro de diálogo Propiedades, cambie el campo (Nombre) a Bebida u otro nombre según sus necesidades, introduzca en el campo RangoDeRellenoDeLista el rango de celdas que contiene los valores únicos extraídos y cierre el cuadro de diálogo.

4. Repita el paso 3 para cambiar el campo (Nombre) del segundo cuadro de lista a Artículo en el cuadro de diálogo Propiedades.
5. Haga clic con el botón derecho en la pestaña de la hoja y seleccione Ver código en el menú contextual. A continuación, copie el siguiente código VBA en la ventana de código. Vea la captura de pantalla:
Código VBA: Crear cuadros de lista dinámicos en cascada en Excel
Dim xPreStr As String
Private Sub Drink_Click()
'Update by Extendoffice 2018/06/04
Dim I, xRows As Long
Dim xRg As Range
Dim xRegStr As String
Application.ScreenUpdating = False
xRegStr = Me.Drink.Text
Set xRg = Range("A2:A11")
xRows = xRg.Rows.Count
If xRegStr <> xPreStr Then
Me.Item.Clear
'Me.OtherListBoxName.Clear
Set xRg = xRg(1)
For I = 1 To xRows
If xRg.Offset(I - 1).Value = xRegStr Then
Me.Item.AddItem xRg.Offset(I - 1, 1).Value
'Me.OtherListBoxName.AddItem xRg.Offset(I - 1, 2).Value
End If
Next
xPreStr = xRegStr
End If
Application.ScreenUpdating = True
End Sub Notas: En el código, Bebida y Artículo son los nombres de las dos listas desplegables; cámbielos por los suyos propios.

6. Pulse las teclas Alt + Q para cerrar la ventana de Microsoft Visual Basic para Aplicaciones.
7. Desactive el modo Diseño haciendo clic en Programador > Modo diseño.
A partir de ahora, al seleccionar cualquier tipo de bebida, como Café, en el cuadro de lista principal, todos los artículos de café aparecerán automáticamente en el segundo. Si elige Té o Vino, únicamente se mostrarán los artículos correspondientes en el segundo cuadro de lista. Vea la captura de pantalla:

Artículos relacionados:
- ¿Cómo borrar la celda de una lista desplegable dependiente en Excel tras cambiar la selección?
- ¿Cómo crear listas desplegables en cascada dependientes en Excel?
- ¿Cómo rellenar automáticamente otras celdas al seleccionar un valor en una lista desplegable de Excel?
- ¿Cómo crear un calendario en forma de lista desplegable en Excel?
- ¿C ómo guardar o conservar las selecciones de cuadros de lista ActiveX en Excel?
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una 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 separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos