Saltar al contenido
publicado

Hola:

Esta macro, coloca un reloj en A1, para arrancarlo, ejecutar la macro, y para pararlo, rellenar A1 con el color rojo.

Sub RELOJ()
On Error Resume Next
If ActiveSheet.Cells(1, 1).Interior.Color = vbRed Then
Application.OnTime Hora, "RELOJ", SCHEDULE:=False
Else
ActiveSheet.Cells(1, 1) = Now
Hora = Now + TimeValue("00:00:01")
Application.OnTime Hora, "RELOJ", SCHEDULE:=True
End If
End Sub
[/CODE]

Saludos.

Featured Replies

publicado

Hola amigo:

¿Te has percatado que lo que detiene el OnTime no es el Schedule en False, sino el error generado por la macro, el cual no se visualiza por el uso del On Error Resume Next? Hasta donde recuerdo, la propiedad Schedule del Ontime solo puede ser cambiada a False a traves de otra rutina. Para que se me entienda, pues, siguiendo con tu idea, esta rutina tambien causaria el mismo efecto:

Sub RELOJ()
On Error Resume Next
If ActiveSheet.Cells(1, 1).Interior.Color = vbRed Then
Range("A1").Offset(-3, -2) = 3 ' observen la incoherencia que causara el error y detendra el Ontime

Else
ActiveSheet.Cells(1, 1) = Now
Hora = Now + TimeValue("00:00:01")
Application.OnTime Hora, "RELOJ", SCHEDULE:=True
End If
End Sub[/PHP]

Por cierto, para mejor visualizacion de "reloj", recomiendo colocar algun formato en el cual se vean los segundos

Saludos

Abraham

Crear una cuenta o conéctate para comentar