martes, 8 de septiembre de 2009

Cuadro Combinado con Contenido Variable



En el post de hoy veremos como realizar cuadros combinados cuyo contenido dependa de lo que seleccionemos en los botones de opción. Para entender mejor nuestro objetivo veamos la siguiente figura:

Lo que queremos conseguir es que una vez seleccionemos la opción deseada en el botón de opción correspondiente, nos aparezca el contenido adecuado en el cuadro combinado.

Los pasos que debemos seguir son los siguientes:
1. Creamos los Botones de Opción (si no recuerda cómo insertar dichos botones consulte Formato Condicional con Botones de Opción) y los vinculamos con la celda D11.
2. Dibujamos el cuadro combinado (véase el post Cálculos con Rangos Dinámicos y Cuadros Combinados) pero todavía no procedemos a configurarlo.
3. Nos situamos en la celda D13 y escribimos la siguiente fórmula:
=DIRECCION(12;D11)&":"&DIRECCION(19;D11)

La función DIRECCION, ya tratada en este blog, crea una referencia de celda con formato de texto, una vez indicada la fila y la columna. En nuestro ejemplo la fila en la que comienzan las tres listas (fijos, eventuales y extras) es la número 12. La columna dependerá de lo que seleccionemos en el botón de opción. Dicho botón lo hemos vinculado con la celda D11 y nos devolverá 1, 2 ó 3. Si por ejemplo seleccionamos la opción Fijos entonces D11 valdrá 1 por lo que la función Direccion nos devolverá como texto la referencia de la columna 1 y fila 12, es decir, A12. De esta manera ya tenemos la celda en la que comienza el rango seleccionado por medio del botón de opción. Ahora tenemos que conseguir la celda en la que concluye dicho rango y eso lo logramos con DIRECCION (19;D11).

Ya tenemos la celda inicial y la celda final de un rango. Para unir ambas utilizamos la función CONCATENAR (o lo que es lo mismo &) y colocamos en medio los dos puntos que identifican un rango:
celda inicial A12
celda final A19
A12&":"&A19
Nos devuelve el rango requerido en forma de texto: A12:A19. Para transformar esta referencia de texto en referencia válida para excel utilizaremos la función INDIRECTO.

4. Vamos al menú Insertar/Nombre/Definir. Escribimos el nombre, por ejemplo, Rango_lista. En el cuadro Se refiere a escribimos la siguiente fórmula y pulsamos Aceptar:
=INDIRECTO($D$13)

5. Nos situamos encima del Cuadro Combinado, hacemos clic en el botón derecho y seleccionamos Formato de Control. En Rango de entrada introducimos Rango_lista (que es precisamente el rango variable que hemos generado) y vinculamos, por ejemplo, con la celda D12. Pulsamos Aceptar.


A partir de este momento cuando pulsemos un botón de opción la lista que aparecerá en el cuadro combinado será la correspondiente al botón seleccionado:



8 comentarios:

  1. Como puedo hacer si los rangos no estan en la celda "A" y "B" o si estan en otra hoja?

    ResponderEliminar
    Respuestas
    1. Hola. Dime por favor a que mail te puedo mandar un archivo con la solución. Un saludo

      Eliminar
    2. Hola, se que a pasado un tiempo desde esta publicacion, pero tengo el mismo problema del comentario anterior, quiero que los rangos variables se encuentren en una hoja diferente a la ubicacion de cuadro combinado, hasta ahora no lo he conseguido, solo funciona cuando cuadro y listas se encuentran en el mismo cuadro. mi correo es igalvez@gmail,com espero me puedas ayudar. saludos

      Eliminar
    3. Este comentario ha sido eliminado por el autor.

      Eliminar
    4. Te lo he mandado pero me da error tu dirección de mail igalvez@gmail.com ¿?

      Eliminar
  2. Gracias por el tutorial. Me pasa lo mismo, que necesito que la definición de la lista esté en otra hoja. ¿Me lo podrías enviar a santiagogilgas@gmail.com? gracias de antemano

    ResponderEliminar