Jump to content

Reloj en Excel


shadowjuan

Recommended Posts

Posted

Hola,

He estado dándole vueltas mucho tiempo a esto, así que lo acabo de materializar tras descubrir la función ontime y os lo pongo para que le echéis un vistazo. Es un reloj de varilla. Hay por ahí ya intentos de reloj (que supongo funcionarán), pero para que funcionen hay que hacer mil historias, calcular senos, cosenos, ángulos, grados y muchas "cosillas" más, todo porque en Excel no se puede poner un punto de giro que no sea el central de una autoforma. Yo he tirado por el camino de enmedio: como una autoforma se puede rotar desde el centro, he hecho que el 50% de la autoforma que es la varilla quede transparente, así que puedo rotar "desde la base de la varilla", siendo realmente el centro. Hay una macro, activa desde que se abre el libro, que cada 2 segundos (se puede configurar desde el código) calcula la hora y actualiza las varillas, por lo que el reloj está siempre acorde a la hora del sistema con un margen mínimo. Hacer esto en tiempo real implica perder eficacia y bloquear Excel en un bucle infinito, por lo que no compensa.

La "pega" es que Excel calcula mientras no se estén editando casillas, aunque luego la macro continúa en marcha y sigue actualizando las varillas y la hora. He dejado los segundos puestos, pero son totalmente opcionales, de hecho están sólo para saber si la macro funciona correctamente sin esperar a que cambie el minuto ;)

Hay un botón para poner en hora manualmente (sólo necesario en caso de que la macro dejase de funcionar) y otro para poner a cero (a las 12:00). Justo bajo el reloj se ve la hora en números (22:15, por ejemplo). No hay varilla segundera, ya que se detendría muy a menudo al editar celdas o abrir cuadros de diálogo, y quedaría algo penoso ;P La precisión de las varillas horaria y minutera va por minutos y siempre que los grados sean enteros (222,5º se cuentan como 223º, creo).

Subo el libro comprimido en zip. Está en formato xlsm (macros), ya que me daba error de funciones para versiones anteriores, o algo parecido, sin dejarme guardar en xls. Está creado en Excel 2010, y ahí no debería dar problemas. No sé si en versiones anteriores funcionará. Libre de toda macro maliciosa ;)

Un saludo.

reloj.zip

Posted

Hola Juan, muy ingenioso, me lo guardo, solo falto parar el reloj.


Private Sub Workbook_Open()
Hoja1.girar
End Sub
Sub cada5()
Application.OnTime Now + TimeValue("00:00:02"), "Hoja1.girar"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Parar
End Sub
Sub Parar()
Application.OnTime EarliestTime:=Now + TimeValue("00:00:02"), Procedure:="Hoja1.girar", Schedule:=False
End Sub
[/PHP]

Posted

¡ Muy bueno !, hace tiempo subí un aporte sobre rotación de objetos, pero no se me ocurrió aplicarlo a un reloj.

Me ha gustado tanto que le he añadido segundera.

Saludos

Reloj II.xls

Posted

Gracias :) Lo de pararlo no me lo planteé seriamente, aunque sea útil, porque normalmente queremos que los relojes funcionen constantemente ;) El cambio de botones a arrancar/parar también queda bien.

Sois unos cracks XD

Un saludo.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy