Timer Modeless

17/05/2005 - 01:05 por Adriano DAmbra | Informe spam
Lamentablemente no estoy participando bastante pero bueno, saludos a los
colegas ExcelManíacos.

Les cuento, implementé un Timer a través de OnTime que actualiza unos labels
mostrando el avance o retroceso según se quiera, pero el problema es el
siguiente, que al uno meterse en un cuadro de diálogo propio de Excel o
incluso en una celda para editar una fórmula, el código VBA queda congelado
y por lo tanto también el timer. Probé de distintas maneras y el efecto es
el mismo.

¿Alguno de ustedes probó el timer que figura en la página esta?:
http://www.enhanceddatasystems.com/...lTimer.htm
¿Consideraciones al respecto?

Saludos, un abrazo

Adriano

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
17/05/2005 - 09:02 | Informe spam
hola, Adriano !

... implemente un Timer a traves de OnTime que actualiza unos labels... el problema es
... que al uno meterse en un cuadro de dialogo propio de Excel o... en una celda para editar una formula
... VBA queda congelado y por lo tanto tambien el timer de distintas maneras y el efecto es el mismo.
¿Alguno... probo el timer... en la pagina... Consideraciones al respecto?



si estas usando el metodo 'ontime', [deberas] tener en consideracion que cuando el usuario 'toma el control'...
[tiene que 'contestar' a los dialogos propios de excel o esta 'editando' celdas]... ->vba 'queda en suspension'<-
[ademas de que el metodo 'en si'... tiene sus 'consideraciones especiales'] :))
[creo que] seria 'preferible' si expones el codigo que estas empleando y lo que 'realmente' necesitas hacer -?-
[incluyendo si tu ya has 'experimentado' con el control de la pagina que apuntas] ;)

comentas datos adicionales?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Adriano DAmbra
17/05/2005 - 15:34 | Informe spam
Héctor, anoche estuve experimentando un poco. Es así como dices, cuando uno
está dentro de un control propio de la herramienta, el VBA se suspende, lo
que es un problema para lo que quería (un timer descendente que se actualice
en todo momento).

Pero el problema no está en el OnTime sino en la forma que hacía los
cálculos.
Probé este control de la página que marqué en el post anterior y en realidad
si uno hace cuentas en el propio código VBA no va a funcionar tampoco.

Lo más aproximado entonces es utilizar directamente el clock de la máquina,
es decir, no decrementar con variables internas del código sino siempre
hacer la cuenta del tiempo transcurrido haciendo el pooling del clock (que
obviamente sí se actualiza). El efecto que vamos a tener es que cuando el
usuario se meta en cuadros de diálogo de Excel, los labels del timer no se
van a actualizar, pero cuando salga de los mismos por lo menos va a
recalcular correctamente avanzando todo el tiempo que estuvo en ese cuadro
de diálogo. El efecto final entonces es de un salto en el timer.

Hoy seguramente lo termino y expongo el código que me quedó en un ejemplo.

Si algún otro pudo hacer que siempre se actualice, BIENVENIDO! Pero no se me
ocurre nada, ya que si nos interrumpe el hilo de ejecución no hay nada para
hacer. Tendríamos que tener otro hilo de ejecución del VBA para hacer esto y
por lo que se no es posible.

Saludos.


"Héctor Miguel" escribió en el mensaje
news:
hola, Adriano !

> ... implemente un Timer a traves de OnTime que actualiza unos labels...


el problema es
> ... que al uno meterse en un cuadro de dialogo propio de Excel o... en


una celda para editar una formula
> ... VBA queda congelado y por lo tanto tambien el timer de distintas


maneras y el efecto es el mismo.
> ¿Alguno... probo el timer... en la pagina... Consideraciones al


respecto?

si estas usando el metodo 'ontime', [deberas] tener en consideracion que


cuando el usuario 'toma el control'...
[tiene que 'contestar' a los dialogos propios de excel o esta 'editando'


celdas]... ->vba 'queda en suspension'<-
[ademas de que el metodo 'en si'... tiene sus 'consideraciones


especiales'] :))
[creo que] seria 'preferible' si expones el codigo que estas empleando y


lo que 'realmente' necesitas hacer -?-
[incluyendo si tu ya has 'experimentado' con el control de la pagina que


apuntas] ;)

comentas datos adicionales?
saludos,
hector.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida