Sobre Cronometro en formulario

Hola buen día, tengo un formulario en excel (tipo cuestionario carga una pregunta y cuatro posibles respuestas para que usuario seleccione una con un tiempo definido 60 segundos o 180 segundos), el cual al cargar una pregunta el cronometro inicia en decremento de 1 en 1, el problema esta, en que cada vez que carga una pregunta en lugar de seguir en 1 en 1, se incrementa en +1 cada que carga nueva pregunta, es decir, la segunda vez que carga va de dos en dos y la tercera de tres en tres y así sucesivamente, la idea es que cargue en todo momento de 1 en 1, gracias ojala y me puedan ayudar. Tengo excel 2010, cabe mencionar que para el cronometro uso la siguiente función: Application.OnTime Now + TimeValue("00:00:01"), "Restarteoria"

1 respuesta

Respuesta

Me pareciera que el evento se esta duplicando...

Es decir al cargar tu 2do formulario... no "anulas" el evento anterior... y entonces... cada segundo... se llaman 2 vences al mismo evento..

Debes estar colocando

Application. OnTime Now + TimeValue("00:00:01"), "Restarteoria"

Para iniciar el contador... pero supongo que en la subrutina tienes alguna otra que la reinicia automáticamente con una instrucción similar... y quizás en cada pregunta tienes otra vez la instrucción... entonces allí se crea un duplicado... y entonces 1 segundo después ambos eventos vuelven a ejecuar la subrutina...

Es decir...

En la primera pregunta... al final... tu inicias el contador... que supongo después se mantiene contando solo...

En la segunda pregunta... al final.. tu inicias el contador... supongo después se mantiene contando solo... pero que se "cruza" con el de la primera pregunta que sigue activo..

Yo usaria el el evento una sola vez... lo reprogramaría incluso antes de iniciar la primera pregunta para iniciar un contador que marcaras en una celda... que aumente de 1 en 1

Luego... cada vez que inicias una pregunta... capturas el valor de ese contador... (en ese instante) y despues con la diferencia con el contador sacas cuantos segundos estan transcurriendo...

Claro mira tengo un formulario el cual al activar una casilla de verificación que manda a llamar la función de cargar pregunta, y esta corre de manera automática cargando la primer pregunta, dentro de esta misma función se manda a llamar al cronometro, el formulario muestra una pregunta y cuatro posibles respuestas, en ese momento el usuario tiene un tiempo determinado para seleccionar la opción que considera correcta mediante cuatro option botton, uno para cada pregunta, cuando el usuario selecciona una opción, tiene que pulsar un botón que automáticamente guarda la respuesta y este hace recursivo el proceso mandando a llamar nuevamente a la función cargar pregunta, yo creo que ahí esta el detalle, el problema es que no haya como solucionarlo, cabe mencionar que solo es un formulario y este una vez que inicia nunca se quita lo único que cambian son las preguntas, respuestas y obviamente el cronometro que tengo en la parte superior del formulario, el cual cada vez tiene que iniciarse dependiendo del tipo de pregunta ya sea en 60 seg. o en 180 seg. son las únicas dos formas. pero que siempre el decremento sea de 1 en 1.

Mi idea es que el procedimiento que programa el evento... y que mueve tu contador... sea un numero INDEPENDIENTE de tu control de tiempo...

Entonces cuando inicias el programa... pone el contador en 0.. en una celda...

Y luego cada segundo llama a un programa que aumenta ese valor en 1... y vuelve a programar ese evento... y muestra el tiempo por pregunta... que recién ahora te explico como calculas...

Cada vez que inicias una pregunta... tomas el valor de ese contador en una variable...

.. Y cada vez que muestras el tiempo por pregunta, calculas la diferencia entre el tiempo en que empezó la pregunta y el tiempo de la celda contador..

tiempo transcurrido = contador - tiempo inicial tiempo transcurrido

tiempo restante = 90 - tiempo transcurrido

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas