domingo, 5 de mayo de 2013

Excel: obtener la hora



¿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 oprimi­mos 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 ejecu­ta 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 argu­mento
 (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 instruc­ció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.