Como detener el reloj en un formulario al llegar a los 10 segundos

Necesito detener el reloj a los 10 segundos, que es el tiempo para contestar.

Legar a los diez segundos, ya he hecho de todo pero el reloj no se detiene

1 Respuesta

Respuesta
1

¿Has probado a usar?

Private Sub Form_Open(Cancel As Integer)
Me.TimerInterval = 10000
End Sub

Private Sub Form_Timer()
DoCmd.Close
End Sub

no me funciona esta e la macro que utilizo

Private Sub Breloj_Click() ' Botón falso
Dim DEPART As Double
Dim Temps As Double
'BTN_Depart.Enabled = False

fin_chrono = 0
DEPART = [now()]
Do While fin_chrono = 0
Temps = [now()] - DEPART
If CheckBox1 = False Then 'CheckBox1
Chrono = WorksheetFunction.Text(Temps, "hh:mm:ss")
'Chrono.Caption = WorksheetFunction.Text(Temps, "hh:mm:ss.00")
Else
Chrono = WorksheetFunction.Text(Temps, "hh:mm:ss")
End If
DoEvents
Loop
End Sub
Sub BFIN_Click() 'Arrete le Chrono
FIN
End Sub


Function FIN()
If fin_chrono = 0 Then
fin_chrono = 1
CheckBox1 = False 'true
'BTN_Depart.Enabled = True
ElseIf CommandButtonA = 1 Then
Chrono = "00:00:00"
End If
End Function

Vamos a ver si me explico. El problema de trabajar con hora, minutos y segundos es que en realidad son decimales de día. Por eso quizá sería mejor que usaras simplemente un cuadro de texto con números, por ejemplo

Supongamos que tengo el formulario,( la pena es que no te puedo poner un vídeo para que veas como disminuye y se cierra)

Cada segundo va bajando( el cuadro de texto se llama Restante, y el código del formulario es

Private Sub Form_Current()
Restante = 10
Me.TimerInterval = 1000
End Sub
Private Sub Form_Timer()
Restante = Restante - 1
If Restante =0 Then
DoCmd.Close
End If
End Sub

En caso de que quieras mantener el formato hora larga

El código tendrías que ponerlo como

Private Sub Form_Current()
Restante = #12:00:10 AM#
Me.TimerInterval = 1000
End Sub
Private Sub Form_Timer()
Restante = Restante - 0.00001157
If Restante < #12:00:00 AM# Then
DoCmd.Close
End If
End Sub

Dependiendo de la configuración del ordenador 12:00:10 AM equivale a 00:00:10 y como los segundos son decimales de día el valor real de un segundo es 0....lo que ves.

El inconveniente de trabajar con esto es que como decimales pueden ser ciento y la madre( en este caso sólo uso 8), nunca llega exactamente a 0, por eso le pongo que en cuanto sea menor se cierre. Y te garantizo que funciona perfectamente.

Esto es aplicable a Excel??????

Supongo que sí, aunque de Excel no tengo ni idea, pero el código de VB es el mismo. Creo que tendrás que hacer, supongo, una macro para para acción Privare Sub. Ahí me pierdo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas