Problema con "OnTime" en Userform

28/07/2005 - 16:51 por Smartito | Informe spam
Buenas tardes,

Pues vereis, os comento el caso, estoy programando un Userform en VBA,
para Excel y me han pedido que si en la parte derecha del Userform
arriba haya un reloj analógico que funcione independientemente de
todos los botones que tiene el Userform, con la función OnTime se me
queda como bloqueado, y cuando quiero salir no sale de ella.

¿Alguna sugerencia?

Si necesitais mas datos, especificos del problema, preguntad, por
favor.

Muchas gracias por adelantado.
Juan Antº Castillo
Sevilla

Preguntas similare

Leer las respuestas

#6 Adriano DAmbra
29/07/2005 - 15:12 | Informe spam
Smartito, ten en cuenta que si el form está en foco va a funcionar bien,
pero si el usuario hace algo que corte el hilo de ejecución de VBA (por
ejemplo, meterse dentro de una celda para crear una fórmula o editarla, el
reloj va a quedar detenido hasta volver). Independientemente que el form sea
modeless.
Para más detalles mira un hilo sobre este tema que dejé hace unos meses.
(por el google)
Saludos. Adriano


"Héctor Miguel" escribió en el mensaje
news:%
hola, Juan Ant !

... el metodo DoEvents, que... permite hacer... otras "cosas" mientras se
ejecuta alguna funcion o instruccion
... aun asi, no logro tener un reloj decente, ya que se producen saltos
en los segundos y tal [...]



adicional a lo comentado por Fernando...
1) SI... 'realmente' necesitas un reloj 'analogo' [independientemente de
que ya lo hayas disenado]...
revisa lo que puedas 'adaptar' de la siguiente pagina:
http://j-walk.com/ss/excel/files/clockchart.htm
2) si te resulta 'valido' un reloj 'digital' [que en realidad es un
control 'Label' en un formulario]...
SIN que se vea 'afectado/interrumpido'/... el resto de tu codigo [p.e.
por algun procedimiento 'OnTime']...
-> descarga/instala un componente ActiveX de la version 5 de internet
explorer [IeTimer.ocx] de...
INFO: ActiveX Controls That Are Removed from Internet Explorer 5
http://support.microsoft.com/defaul...-us;190045
+/- a la mitad de la pagina encontraras una seccion...
Internet Explorer Timer Control
http://activex.microsoft.com/contro...etimer.cab
3) una vez descompactado/copiado/... el componente [puedes registrarlo con
la utilidad regsvr[32].exe o...]
-> en tu proyecto de vba... agrega una referencia [menu] herramientas /
referencias -> a dicha libreria .OCX
-> a la 'caja de herramientas/controles' [una vez 'creado' un
formulario de usuario]...
-> haz un click-derecho -> mas controles... -> localiza [por orden
alfabetico] el control: 'Timer Object'
-> agrega a tu formulario un control [p.e. IeTimer1] MAS -> un
control 'Label' [p.e. Label1]
-> en las propiedades del control IeTimer1... cambia el valor de la
propiedad 'Interval' -> a 1 [uno] <-
-> en el modulo de codigo del formulario... copia el sigiente codigo...
Private Sub IeTimer1_Timer()
Label1 = Time
End Sub

saludos,
hector.

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