Listas desplegables dependientes


¿Has querido crear listas desplegables dependientes en Excel alguna vez y no has sabido cómo hacerlo?

Pues, hoy vamos a aprender a través de un sistema muy sencillo para que nunca más se te vuelva a olvidar.

Hay más formas de hacerlo, porque Excel siempre nos ofrece diferentes maneras de hacer las cosas, pero…

¿Para qué complicarse la vida?

Llámame rara, pero siempre he sido partidaria de hacer las cosas sencillas, cuando no es necesario escoger el camino más largo…

Qué son las listas desplegables en Excel

Empecemos por el principio, porque si no sabemos qué son las listas desplegables, de poco nos va a servir leer lo que viene a continuación.

Las listas desplegables son aquellas listas que encontramos al seleccionar una celda y que nos obligan a escoger un dato de la misma, sin permitirnos poner cualquier otro dato.

Algo así:

Lista desplegable en Excel

Si tu intención es crear una lista como la que ves en la imagen, en la que solo hay un dato a escoger y después no tienes ninguna otra lista que dependa de ese dato, puedes ver cómo hacerlo, en el post en el que hablo de cómo hacer facturas automatizadas.

Qué son las listas desplegables dependientes

Como siempre, yo soy partidaria de explicarlo todo a través de ejemplos, porque me parece la mejor manera de entender las cosas.

Ya que hoy voy a hablar de listas dependientes, he decidido que la imagen destacada de este post me eche un cable.

Si te fijas, en ella tenemos frutas y verduras.

Bien.

Imagina que tienes un restaurante y una lista enorme de productos que necesitas para crear tus recetas: patatas, cebollas, carne, pollo, peras, naranjas…

Imagina que tienes esos productos clasificados por verduras, carnes, frutas, etc.

Algo más o menos así:

Listas de productos

Imagina que has creado un formulario para hacer la lista de la compra.

Formulario en Excel

Lo que te interesaría en este caso, sería crear una lista desplegable en la primera celda, en la que escoger la categoría de producto (que corresponde al encabezado de tus listas).

Y que, al escogerla, en la segunda celda, te salieran los productos que corresponden a esa categoría.

Es decir, que la lista que apareciera en la celda correspondiente al producto, dependiera de lo que hayas escogido en la celda correspondiente a la categoría.

Para ello, tenemos las listas desplegables dependientes de Excel.

Cómo crear una lista desplegable dependiente en Excel

Crear este tipo de listas desplegables dependientes, es bastante más sencillo de lo que puede parecer.

Se trata de crear una primera lista en una celda y después vincular la segunda a la celda en la que está la primera.

Primera lista desplegable

Lo primero que tendremos que hacer será crear la primera lista desplegable.

Para ello, nos situaremos en la celda que tiene que contener esa lista, en nuestro ejemplo, en la que tenemos que poner la categoría.

Iremos a la pestaña «Datos» y en la ficha «Herramientas de datos», clicaremos en el botón «Validación de datos».

Validación de datos en Excel

Al hacerlo, nos aparecerá una ventana.

En ella, debemos escoger «Lista» en la opción «Permitir», seleccionamos las celdas que contienen los nombres de las categorías y aceptamos:

Validación de datos en Excel. Lista desplegable

Una vez hecho esto, ya tendremos la lista de las categorías en su celda correspondiente.

Lista desplegable principal

La lista desplegable dependiente

Ahora viene la parte que parece más complicada, pero que, de hecho, lo es menos de lo que puede parecer.

Vamos a ver cómo hacerlo, pero antes un pequeño comentario.

Lo interesante de estas listas es que, si añadimos productos a cualquiera de las categorías, se añadan automáticamente a su lista desplegable.

Por tanto, tenemos que realizar un paso previo para que esto sea así.

Crear tablas individuales para las listas desplegables dependientes

Lo primero que tenemos que hacer, es convertir los rangos en los que tenemos los productos en tablas oficiales de Excel.

Para ello, tenemos que seleccionar cada uno de esos rangos y, o bien ir a la pestaña «Insertar» y clicar sobre el icono «Tabla», o bien clicar el atajo de teclado CTRL+T:

Crear tablas de Excel

Dejamos seleccionada la opción «La tabla tiene encabezados» y aceptamos.

Una vez creada la tabla, es muy importante ponerle nombre y que éste coincida con el encabezado de la tabla.

Es decir, para la columna cuyo encabezado se llama «Verduras» que la tabla se llame también «Verduras», para la columna cuyo encabezado se llama «Carnes» que la tabla se llame también «Carnes», etc.

Es importante mantener el formato, es decir, si el encabezado está en mayúsculas o tiene tildes, la tabla también tiene que tenerlas.

Para poner el nombre a las tablas, nos tenemos que situar en cualquiera de las celdas de la misma y nos aparecerá una nueva pestaña llamada «Diseño de tabla».

A la izquierda, en la ficha «Propiedades», tenemos el recuadro en el que debemos asignarle el nombre a la tabla.

Asignar nombre a la tabla de Excel para listas desplegables dependientes

Este mismo proceso, lo tenemos que hacer con cada una de las categorías.

Crear la lista desplegable dependiente

Una vez hemos creado cada una de las tablas y les hemos asignado nombre, llega la hora de crear la lista desplegable dependiente.

Hacerlo es muy sencillo, se trata de colocarnos en la celda en la que queremos que aparezca dicha lista y volver a clicar en el botón «Validación de datos» de la pestaña «Datos».

Volvemos a seleccionar «Lista» en la opción «Permitir» y en «Origen» escribimos la fórmula INDIRECTO pasándole, como único argumento, la celda que tiene la lista desplegable de las categorías (en mi caso, la H19).

Listas desplegables dependientes. Validación de datos

Si esa celda está vacía en el momento en el que creamos la lista desplegable dependiente, Excel nos va a devolver un cuadro de advertencia.

Esto es debido a que la lista no tiene datos a devolver.

Continuamos clicando sobre «Sí».

Listas desplegables dependientes. Error

Una vez hecho esto, ya podemos comprobar como nuestra lista de datos dependientes funciona perfectamente.

Y que, si añadimos registros a cualquiera de las tablas, éstos se añaden automáticamente a la misma.

Al final, no ha sido difícil, ¿verdad?

Un apunte final

Algo que no queda bien en las listas desplegables dependientes es que, cuando tenemos seleccionado un dato en la primera lista y otro en la segunda y cambiamos el dato de la primera lista, el dato que está de la segunda no se borra y genera una sensación un poco fea.

Listas desplegables dependientes. Cambio de lista

Esto se puede solucionar, pero para hacerlo tenemos que escribir un poquitín, muy poquitín de código VBA.

Vamos a hacerlo.

Abrir el editor de VBA

Lo primero que tenemos que hacer es clicar con el botón secundario en el nombre de la hoja y seleccionar la opción «Ver código»

Ver código en hoja de Excel

Al clicar se nos va a abrir el editor de VBA.

El editor se puede abrir de otras maneras, pero si lo hacemos directamente desde el nombre de la hoja, se nos abrirá el código que corresponde a esa hoja, que es el que nos interesa.

Editor VBA. Hoja actual

Ahora tenemos que cambiar de General a Worksheet a través del desplegable.

Código VBA. Worksheet

En cuanto lo hagamos, nos aparecerá un principio de código que podemos eliminar, porque lo que tenemos que hacer es cambiar, también a través del otro desplegable, de «SelectionChange» a «Change».

Código VBA. Worksheet Change

Con esto, le estamos diciendo a Excel que cuando se produzca un cambio en la hoja, tiene que ejecutar el código que vamos a escribir.

En cuanto seleccionemos «Change», nos aparecerá otro código, Private Sub Worksheet_Change, que será el que utilizaremos para arreglar el problemilla del que estamos hablando.

Vamos a por el código VBA para limpiar las listas desplegables

Bien.

Recordemos que antes hemos visto que, en mi caso, tengo las listas desplegables en las celdas H19 y H20 (lo puedes comprobar en una imagen más arriba).

Le tenemos que decir a Excel que, cuando se produzca un cambio en la primera celda, la que corresponde a las categorías (la H19), que limpie la segunda celda, la que se corresponde a los productos (la H20).

Para ello, escribimos lo siguiente:

VBA. Worksheet. Change. Limpiar listas desplegables

(evidentemente, tú vas a tener que adaptarlo a las celdas en las que tengas los datos)

Guardar el libro habilitado para macros

Una vez hecho esto, tenemos que guardar el documento habilitado para macros, porque si no lo hacemos, el código no se va a guardar y no conseguiremos nuestro objetivo.

Para ello, clicamos en el icono de guardar del editor de VBA y…

¡CUIDADO!

En el cuadro de diálogo que nos abre Excel, está por defecto seleccionado el SÍ, pero si leemos bien, nos daremos cuenta de que tenemos que clicar en el NO.

El cuadro nos dice que este libro contiene código VBA y que, si lo queremos guardar así, debemos clicar en NO.

Guardar libro de Excel habilitado para macros

Escogemos la opción correspondiente:

Libro de Excel habilitado para macros

Y una vez tengamos el libro guardado, habilitado para macros, podemos cerrar el editor de VBA.

Volvemos a Excel y ya podemos comprobar que ahora sí, cuando cambiamos de categoría, la celda correspondiente al producto, se limpia generando una mejor experiencia de uso.

Lista desplegable dependiente

Nada nuevo que no sepas

Nombre, email, aceptas y... ¡Sorpresita!

Si quieres saber cómo sacarle el máximo partido a tus libros de Excel, únete a los cientos de miles de millones de de personas que lo están descubriendo día a día.


2 comentarios en «Listas desplegables dependientes»

  1. El uso de VBA se me hace un poco confuso. Pero gracias porque me encanta el uso de Excel ya que es de gran utilidad en mi trabajo cotidiano.

    Saludos desde Nicaragua Centroamérica

    Responder

Deja un comentario