lunes, 7 de mayo de 2012

Listas circulares

Llamamos lista circular a la lista móvil que funciona como las orugas de un tanque; el elemento que sale por debajo entra por encima, y viceversa. Para hacer que la lista se mueva podemos emplear una Barra de desplazamiento, un Control de número o cualquier otro método que genere valores numéricos consecutivos.

Podemos hacer que la lista muestre todos los elementos posibles (por ejemplo, los doce meses del año) o parte de ellos (por ejemplo, 12 elementos de los 117 que tiene la Tabla períodica).

Si sólo vamos a mostrar unos pocos elementos de la lista, y ésta es muy extensa, será necesario crear una tabla. Esto ocurre con la Tabla periódica, que en el ejemplo desarrollado está en la hoja Elementos.

Si la lista tiene pocos elementos (vayamos a mostrarlos todos o parte de ellos), no será necesario crear una tabla (aunque si la hubiere, facilitaría cualquier modificación).

Comencemos con la lista corta. En la ficha Programador, seleccionamos Insertar + Barra de desplazamiento (control ActiveX). Trazamos un pequeño rectángulo en cualquier sitio libre de la hoja y, en el menú contextual, elegimos Propiedades.

Salimos del modo de edición haciendo clic en Programador + Modo Diseño. Con estas propiedades, hemos creado una barra que generará valores comprendidos entre 1 y 100. Estos valores se asocian a la celda B16. Inicialmente, hemos puesto 50 en la propiedad Value, lo que significa que el desplazable de la barra se encontrará en la mitad. Podemos pulsar en los botones de la barra para comprobar cómo cambia el valor de la celda B16.

El siguiente paso consiste en ocultar el valor de la celda B16 con la propia barra de desplazamiento. Para ello, volvemos a entrar en el modo de edición pulsando Programador + Modo Diseño y, manteniendo pulsada la tecla Alt, desplazamos y modificamos el tamaño de la barra hasta que ocupe toda la celda B16. Finalmente, salimos con Programador + Modo Diseño.

Ahora, ponemos la siguiente fórmula en B3:
=INDICE({"ENE"\"FEB"\"MAR"\"ABR"\"MAY"\"JUN"\"JUL"\"AGO"\"SEP"\"OCT"\"NOV"\"DIC"};RESIDUO(FILAS($B$3:B3)+$B$16-2;12)+1)

Extendemos la fórmula hasta la fila 14 y probamos.

En el caso de una lista larga no podemos poner los elementos de la matriz en la fórmula (sería inmensa); hay que crear una tabla. La columna B de la hoja Elementos contiene los nombres de todos los elementos de la Tabla Periódica ordenados por orden alfabético.

Seleccionamos B4:B120 y, en el Cuadro de nombres, escribimos: Elementos (terminar pulsando Intro)

En la ficha Programador, seleccionamos Insertar + Control de número (control ActiveX). Trazamos un pequeño rectángulo en cualquier sitio libre de la hoja Lista_circular y, en el menú contextual, elegimos Propiedades

Manteniendo pulsada la tecla Alt, desplazamos y modificamos el tamaño del control hasta que ocupe toda la celda D16. Finalmente, salimos con Programador + Modo Diseño.

En D3:
=INDICE(Elementos;RESIDUO(FILAS($B$3:B3)+$D$16-2;117)+1)

Extendemos la fórmula hasta la fila 14.




No hay comentarios:

Publicar un comentario