¿Es posible con una macro poner un reloj en una hoja de Excel, de modo de obtener la hora en todo momento, tomándola del reloj interno de la PC?
La forma más simple de obtener la hora en Excel es mediante
la función =AHORA(). Esta función, que no lleva argumentos,
da la fecha y la hora actuales. Según el formato adecuado, l
a celda puede mostrar la fecha, la hora o ambos.
El valor de la función se actualiza cada vez que se recalcula la hoja.
Sea porque modificamos algún dato o porque oprimimos la tecla .
Si queremos asegurar la actualización automática, podemos usar una macro:
Sub Reloj()
Sheets(1).Cells(1, “A”) = Now
Application.OnTime Now + TimeSerial(0, 0, 2), “Reloj”
End Sub
Esta macro coloca el valor de la función Now (equivalente a AHORA)
en la celda [A1] de la primera hoja del libro y, luego de una pausa de
dos segundos, se ejecuta a sí misma.
La instrucción OnTime programa la ejecución de la macro
que figura como segundo argumento (Reloj) para el
momento indicado como primer argumento
(el momento actual más dos segundos).
Esta pausa de dos segundos permite seguir trabajando
con la hoja de la forma normal.
El problema de esta macro es que pretende seguir
reejecutándose de manera continua. Incluso, después
de cerrar el archivo, lo cual puede generar complicaciones.
Deberíamos prever alguna forma de finalizar la reejecución
al cerrar el archivo. Podemos hacerlo con esta segunda macro:
Sub Auto_Close()
Application.OnTime Sheets(1).Cells(1, “A”) + _
TimeSerial(0, 0, 2), “Reloj”, , False
End Sub
Por tener el nombre especial Auto_ Close,
esta macro se ejecuta automáticamente al cerrar
el archivo que la contiene. La macro contiene la
misma instrucción de la macro Reloj, pero con el argumento
False al final. Esta instrucción cancela la continua reejecución de la macro Reloj.
No hay comentarios:
Publicar un comentario
Deja todo lo que quieras decirnos, somos mentes abiertas y leemos de todo y para todos, pero por favor no insultes, no agredas, no seas pornografico, eso no nos gusta y te vamos a mandar bien lejos.