Macro con reloj que hiciste
He visto en el foro que Dante te ayudó a finalizar un cronómetro en el que aparecía la figura de un reloj. Verdaderamente me pareció una genialidad y me gustaría saber si podrías pasarme el archivo para aplicarlo yo a mis alumnos. Muchas gracias. Mi correo es: [email protected]
1 respuesta
Porque gracias a un gran maestro como Dante Amor e aprendido a realizar mis primeras macros de las cuales el Reloj es uno de ellos...
Hola de nuevo. Llevo varios días intentando que el reloj simplemente me muestre una cuenta atrás de 1 minuto, pero no soy capaz. No necesito más que un botón de comienzo y otro de poner a cero y si es posible que dé un mensaje cuando llegue el temporizador a cero. La fecha y el día se pueden mantener. Las 3 celdas azules que muestran a la izquierda no las necesito si ya da la hora el reloj. ¿Podrías ayudarme por favor?
Yo e modificado en la parte de la macro ActualizarHora y me resulta si te es de ayuda cambia esa parte de la macro por esta Saludos.
Sub ActualizarHora() 'Por.Dante Amor If [D5] = "0" Then MsgBox "El conteo a finalizado" & vbNewLine & " Ingrese nuevo conteo " h1.[C3] = "Fin" Else h1.[A5] = h1.[A5] + TimeValue("00:00:01") h1.[D5] = h1.[D5] - TimeValue("00:00:01") h1.[A8] = Time h1.[A10] = h1.[A5] - TimeValue("00:01:00") Application.OnTime Now + TimeValue("00:00:01"), "ActualizarHora" End If End Sub
Me faltaba indicarte que en la celda D5 tienes que poner el tiempo que mas te convenga.
Bueno e eliminado gran parte del código y si te es de ayuda te la dejo.
Cambia todo el código por esto.
Dim l1, h1 Sub Iniciar() 'Por.Dante Amor Set l1 = ThisWorkbook Set h1 = l1.Sheets("Hoja1") h1.[C3] = "Fin" h1.[D5] = "00:00:00" h1.[A5] = Time End Sub Sub Comenzar() 'Por.Dante Amor Set l1 = ThisWorkbook Set h1 = l1.Sheets("Hoja1") If h1.[C3] = "" Then MsgBox "No se puede ejecutar otra vez", vbCritical, "El reloj está en ejecución" Exit Sub End If h1.[C3] = "" ActualizarHora End Sub Sub ActualizarHora() 'Por.Dante Amor Set l1 = ThisWorkbook Set h1 = l1.Sheets("Hoja1") If [D5] = "0" Then MsgBox "EL CONTEO A FINALIZADO" & vbNewLine & "Ingrese nuevo tiempo" h1.[C3] = "Fin" Else If h1.[C3] = "Fin" Then Exit Sub h1.[A8] = Time h1.[D5] = h1.[D5] - TimeValue("00:00:01") Application.OnTime Now + TimeValue("00:00:01"), "ActualizarHora" End If End Sub
En este caso la celda D5 tienes la opción de poner el tiempo que desees.
Muchas gracias de nuevo por la aportación. Estoy intentando pasar a mi libro el reloj y los botones, pero algo debo hacer mal porque no me funciona. Si fuera tan amable de indicarme una dirección de correo le enviaría el archivo que estoy haciendo. Es una hoja de cálculo mental para niños.
También me gustaría saber cómo copiar la cuenta atrás en otras celdas para que cuando se desplace por la hoja se pueda seguir viendo el tiempo restante.
De nuevo muchas gracias por su ayuda.
Me gustaría ayudarte mi correo es [email protected]
Cambia toda la macro por esto:
Dim l1, h1 Sub Iniciar() 'Por.Dante Amor Set l1 = ThisWorkbook Set h1 = l1.Sheets("Mental") h1.[Q2] = "Fin" h1.[F25] = h1.[F8] h1.[F38] = h1.[F8] h1.[M2] = Time End Sub Sub Comenzar() 'Por.Dante Amor Set l1 = ThisWorkbook Set h1 = l1.Sheets("Mental") If h1.[Q2] = "" Then MsgBox "No se puede ejecutar otra vez", vbCritical, "El reloj está en ejecución" Exit Sub End If h1.[Q2] = "" ActualizarHora End Sub Sub ActualizarHora() 'Por.Dante Amor On Error Resume Next Set l1 = ThisWorkbook Set h1 = l1.Sheets("Mental") If [F8] = "0" Then MsgBox "EL CONTEO A FINALIZADO" & vbNewLine & "Ingrese nuevo tiempo" h1.[Q2] = "Fin" Else If h1.[Q2] = "Fin" Then Exit Sub h1.[M2] = Time h1.[F8] = h1.[F8] - TimeValue("00:00:01") h1.[F25] = h1.[F25] - TimeValue("00:00:01") h1.[F38] = h1.[F38] - TimeValue("00:00:01") Application.OnTime Now + TimeValue("00:00:01"), "ActualizarHora" End If End Sub
Pon el tiempo en la celda F8 de ahí las demás celdas se adaptaran a ese tiempo automáticamente al presionar inicio cero.
Hola Edgar, supongo que hayas estado ocupado. Te respondí al último mail preguntando si en las celdas en las que se operan divisiones se podría hacer algo para que al generar números los resultados fuesen divisiones exactas, porque son niños pequeños los que tienen que responder y aún no saben hacerlo mentalmente. Muchas gracias.
Xander320
Disculpa por no haber respondido a tu ultima consulta e intentado resolver tu duda pero sin resultado cave indicar que yo soy un principiante en esto por lo tanto no soy tan experto en programación todo lo que e aprendido es gracias a este foro seria bueno que realices una nueva pregunta con tu duda que tienes ya que ami también me gustaría saber si esa parte se puede hacer descuida que aquí en este foro hay muy buenos expertos en este tema.
Saludos espero que mi ayuda te haya servido.
- Compartir respuesta