Temporizador (timer) sin macros en OpenOffice Calc

 

Temporizador (timer) en OpenOffice Calc sin macros

Uno de los problemas que los usuarios avanzados encuentran en OpenOffice Calc es conseguir que su hoja de cálculo sea capaz de recalcularse automáticamente o de realizar un nuevo proceso cada cierto tiempo, sin intervención del usuario.

 

Mediante el lenguaje de macros es posible crear un temporizador, como el que podemos ver en este artículo de Antonio Roldán. Pero lo cierto es que muchos usuarios no quieren o saben utilizar macros, o en su entorno las macros están bloqueadas por seguridad.

Gracias a un truco que encontramos en el Foro Oficial en español de OpenOffice podemos obtener un temporizador sin usar macros. A continuación desarrollamos un ejemplo completo, paso a paso, que aunque a priori parece muy largo y complejo, en realidad es sencillo y fácil de entender. Aprenderás también a crear y aplicar fácilmente estilos de celdas, y a aplicar formateo condicional.

 

Supongamos la siguiente situación: Necesitamos controlar el tiempo que determinadas tareas llevan esperando en una cola, para poder fácilmente detectar aquellas cuyo tiempo de entrega está cercano a vencer, y así priorizar qué tareas debemos seleccionar antes por su nivel de urgencia.

Las tareas se van introduciendo secuencialmente en la hoja de cálculo tal y como vamos teniendo conocimiento de su existencia, y queremos que se marquen con un código de colores en función del tiempo que nos falta para su vencimiento utilizando el formateado condicional de Calc, creando con tal fin tres estilos de celda.

Así que crearemos una hoja de cálculo como la que ves en la imagen:

 

 

La celdas con la fecha y hora actual

En la celda A2 hemos insertado la fórmula =HOY(), que nos presenta la fecha actual

En la celda A4 hemos insertado la fórmula =AHORA(), que nos devuelve la fecha y hora actual.

Hemos formateado ambas celdas para que presenten el aspecto que se muestra en la imagen, asignando a la primera un formato de fecha y a la segunda un formato de tiempo.

 

Definir los intervalos de tiempo

Las celdas B2 a B4 definen los intervalos de tiempo que deciden si una tarea tiene prioridad urgente (faltan 10 minutos para su entrega), prioridad normal (faltan 30 minutos para su entrega) o prioridad baja (faltan 50 minutos para su entrega).

Para introducir estos intervalos tan solo tienes que hacer clic en la celda correspondiente y teclear 0:10, 0:30 y 0:50, según corresponda.

Asignamos a la celda B2 fondo rojo, letra en blanco y negrita. A la B3, fondo amarillo y negrita. A la B4, relleno verde.

 

Crear los estilos de celda

Pulsa la tecla de función F11 para que se muestre el panel de Estilos y formateo. Haz clic sobre la celda B2, y haz clic sobre el botón Nuevo estilo a partir de selección del panel. Asigna el nombre c_Rojo al nuevo estilo.

Repite el proceso para las celdas B2 y B4 asignando los nombres cAmarillo y c_Verde respectivamente.

 

 

Uffff, que complicado lo de crear estilos, ¿verdad?

 

Aplicar un estilo de celda a un rango de celdas

Las celdas del rango B7:B?, donde ? quiere decir la última celda de ese rango (si tenemos 100 tareas será B107) tendrán por defecto el estilo de celda c_Verde.

Para aplicar este estilo, seleccionamos el rango de celdas y hacemos doble clic sobre el nombre del estilo en el panel de Estilos y formateo.

En nuestro caso, y como más adelante copiaremos los estilos de la celda B7 al resto de celdas del rango, bastará con aplicar el estilo a B7

 

Las celdas Día/Hora límite y Día/Hora

Esta es la parte más compleja de explicar. Para facilitar los cálculos necesitamos programar algunas celdas extra. Éstas las situaremos en la columna C.

Al introducir una hora en una celda de Calc, por ejemplo, 00:10 horas, en realidad estamos introduciendo un valor que contiene fecha y hora. 00:10 es equivalente al 30/12/1899 00:10:00 horas.También es equivalente al valor 0,00694444444444444.

Dicho de otra forma: para una hoja de cálculo, las fechas y horas en realidad son números, siendo el componente entero del número el que define la fecha, y el componente decimal, la hora. Para que se muestre como un número, una fecha o una hora, lo que hacemos es cambiar el formato de la celda.

Si tan sólo introducimos una hora (12:45, por ejemplo), Calc considera que son las 12:45 del día 30/12/1899.

Para calcular la hora límite de cada entrega necesitamos también tener en cuenta su fecha. Así, en la celda C2 insertamos la fórmula =$A$4+B2 (sumamos el intervalo de tiempo a la fecha y hora actual que tenemos en A4). Las celdas C3 y C4 las llenamos con un copia-pega de la celda C2.

Hemos aplicado un fondo azul claro a estas celdas, sencillamente por que nos gusta.

El mismo argumento utilizamos para el rango C7:C?, donde ? quiere decir la última celda de ese rango (si tenemos 100 tareas será C107). El usuario introduce en B7 una hora (16:40, por ejemplo, que son las 16:40 del día 30/12/1899), pero para hacer comparaciones necesitamos conocer la fecha y hora de hoy.

Así, en C7 insertamos la fórmula =$A$2+B7 (a la hora de entrega introducida por el usuario le sumamos la fecha de hoy contenida en A2).

Al situar todos los cálculos sobre esta columna podemos ocultarla al finalizar el diseño, de forma que el usuario verá tan sólo los datos que necesita para trabajar.

 

Aplicar formato condicional a las celdas

Queremos que el rango de celdas B7:B? se muestre de un color u otro según la prioridad de la tarea. Para conseguir esta funcionalidad aplicamos formato condicional a la celda B7 y a continuación copiaremos su estilo al resto de celdas.

Paso a paso:

Selecciona B7. Selecciona desde el menú Formato > Formateo condicional..., y completa el diálogo con los datos que ves en la imagen.

 

 

Comparamos la fecha-hora contenida en la celda C7 con la fecha-hora contenida en la celda C2; si es menor o igual, se le aplicará el estilo c_Rojo.

Como segunda condición, si la celda C7 es menor o igual que la celda C3 se le aplica el estilo c_Amarillo.

Si no cumple ninguna de estas condiciones, se mostrará con el estilo c_Verde que aplicamos en uno de los pasos anteriores.

El formateo condicional se aplica a la celda B7, aunque para decidir que estilo se le aplicará evaluemos el contenido de la celda c7.

 

Preparar la hoja para que contenga hasta 100 tareas

Suponemos que con 100 tareas será suficiente para nuestros propósitos. Selecciona las celdas B7:C7. Haz clic y arrastra sobre la agarradera de relleno (el punto cuadrado negro) hasta llegar a la fila 107. Con esta sencilla acción copias el formato, el formato condicional y las fórmulas contenidas en estas celdas hasta la fila 107.

 

 

Guarda el trabajo que estás realizando, por ejemplo con el nombre Planificar Tareas, pero no lo cierres todavía.

 

Crear e insertar el temporizador (timer)

Hasta ahora nada nuevo para un usuario avanzado en Calc. Pero seguro que habrás observado un pequeño problema. Si no recalculamos la hoja de cálculo, o hacemos algún cambio en ella para forzar que recalcule, la celda A4 que contiene la fecha y hora actual no se actualiza.

Podrían pasar años sin que se recalculen las celdas que con tanto mimo hemos elaborado. Necesitamos que Calc, cada cierto tiempo, refresque la hoja de cálculo para que se actualice la prioridad de las tareas.

Calc no dispone de ningún método que haga esta función, pero con este sencillo truco vamos a crear un temporizador para que, por ejemplo, cada 15 segundos, refresque toda la hoja.

Va a ser sencillo. Crea un nuevo documento de Calc desde el botón Nuevo o desde el menú Archivo > Nuevo > Hoja de cálculo.

En la celda A1, y por si las moscas, escribimos un recordatorio, como por ejemplo: No borrar esta hoja. Es un temporizador para otras hoja de cálculo. Gracias. Ponle un tamaño de letra grande, para que se vea.

En la celda A2 introducimos la siguiente fórmula =AHORA().

Selecciona la celda A2

Desde el menú Insertar > Nombres > Definir... completamos como muestra la imagen el diálogo; En Nombre escribe Temporizador. En Asignado a debe mostrar $Hoja1.$A$2; si no es así, es por que no seleccionaste la celda A2; puedes seleccionarla ahora. Haz clic sobre el botón Añadir, y para finalizar sobre el botón Aceptar.

 

 

Aplicaremos ahora el formato adecuado a la celda; por ejemplo, fondo de color Naranja 3 y formato de tiempo que muestre horas, minutos y segundos, y para que quede bonito, centramos en la celda.

 

 

Guarda la hoja, por ejemplo con el nombre Temporizador. Cierra esta hoja.

Tan sólo nos queda el último paso. Estamos de nuevo en la hoja Planificar Tareas. Hacemos clic sobre la celda A4.

Desde el menú Insertar > Vincular con datos externos... completamos el diálogo como ves en la imagen:

 

 

Lo que hemos hecho es vincular la celda A4 de nuestro documento con una celda con nombre de otra hoja de cálculo. Lo de aplicar un nombre a la celda en el documento vinculado es condición necesaria, por eso lo hemos hecho así.

Observa que podemos definir el tiempo en que Calc actualizará el vínculo, desde 1 segundo hasta el tiempo que consideres necesario; quizá para nuestro ejemplo baste con 60 segundos; en cualquier caso, por ahora introduce 15 segundos.

Ahora rellena con datos de prueba tomando como modelo la primera imagen que mostramos de la hoja en este artículo.

Una forma fácil: introduce, por ejemplo, en las celdas A7 y A8 el texto Tarea 01 y Tarea 02. En las celdas B7 y B8 introduce la hora actual y la hora actual más cinco minutos; por ejemplo, si son las 11:45, introduce 11:40 y 11:50.

Selecciona las celdas A7:B8 y desde la agarradera de relleno arrastra hasta la fila 20

Si dejas pasar el tiempo suficiente, verás como además de cambiar la hora mostrada, las celdas de las tareas cambiarán su color mostrando su nivel de prioridad.

 

Modificar el tiempo de actualización

Como hemos dicho, 15 segundos quizás no sea el tiempo más adecuado para este proyecto, o sencillamente prefieres poner otro tiempo de actualización.

Selecciona desde el menú Editar > Vínculos...

Selecciona el vínculo correspondiente al Temporizador y haz clic en Modificar...

Asigna el tiempo que consideres adecuado.

 

Aviso al abrir el documento

Cuando abras de nuevo tu documento, Calc te advierte que éste contiene vínculos a otros documentos, y pregunta cómo debe actuar.

 

 

Lo lógico es que le indiques que deseas actualizar los vínculos para que desde el principio muestre la hora correcta.

Si no deseas que Calc pregunte, puedes cambiar una opción general de configuración, pero esto afectará a todos los documentos con vínculos de Calc. Desde el menú Herramientas > Propiedades > OpenOffice.org Calc > General, cambia la opción Actualizar vínculos al cargar de A petición a la que consideres más adecuada. Calc no volverá a preguntar.

Si el truco te ha gustado, quizás quieras dejar una nota en nuestro Libro de visitas.

Saludos

 

4 comentarios

Comentario De: carlos arturo arboleda [Visitante]

Muchas gracias.

17.03.15 @ 20:03 Reply to this comment
Comentario De: Fabian perez [Visitante]  

Excelente aporte muchas gracias, me podras ayudar necesito programar unas actividades a x dias y que una hoja de calculo me avise que ya se cumplio lo programado y que vuelva a iniciar el ciclo programado

15.02.16 @ 20:14 Reply to this comment
Comentario De: [Miembro]

Hola Fabian

Mejor pásate por el Foro, donde más compañeros, además de nosotros, te podremos ayudar.

Saludos

Comentario De: Paco [Visitante]  

Es fantastico. Muy util para mi.

Se podría lanzar un aviso sonoro a la vez que se cumple la condicion del formato condicional rojo ?

23.06.20 @ 10:36 Reply to this comment


Form is loading...