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

#1 anonimo
28/07/2005 - 20:48 | Informe spam
doevents ????





"Smartito" escribió en el mensaje
news:
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
Respuesta Responder a este mensaje
#2 Smartito
29/07/2005 - 09:06 | Informe spam
Buenos dias,

He probado con el método DoEvents, que se supone que te permite hacer
(o mejor dicho le permite al programa hacer) otras "cosas" mientras se
ejecuta alguna función o instrucción. Pero aún así, no logro tener
un reloj decente, ya que se producen saltos en los segundos y tal.

Alguna otra sugerencia?

Saludos!
Juan Antº Castillo
Sevilla
Respuesta Responder a este mensaje
#3 Fernando Arroyo
29/07/2005 - 09:44 | Informe spam
Comprueba si tienes el control VBATimer.Timer:
- pulsación derecha sobre la barra de controles > Controles adicionales. Si lo encuentras, márcalo.
- ahora lo tendrás disponible para situarlo en el formulario.
- una vez creado el control, selecciónalo y pulsa F4.
- establece su propiedad Interval a 1 y Enabled a True
- inserta una etiqueta en el formulario (supongamos que se llamará Label1)
- doble click sobre el control Timer, e inserta el siguiente código:

Private Sub Timer1_Timer()
Label1.Caption = Time
End Sub

Si no tuvieras disponible el control VBATimer, quizás te sirva esto (me temo que todo está en inglés):

http://vb.mvps.org/samples/project.asp?id=timerobj

Un saludo.


Fernando Arroyo
MS MVP - Excel


"Smartito" escribió en el mensaje news:
Buenos dias,

He probado con el método DoEvents, que se supone que te permite hacer
(o mejor dicho le permite al programa hacer) otras "cosas" mientras se
ejecuta alguna función o instrucción. Pero aún así, no logro tener
un reloj decente, ya que se producen saltos en los segundos y tal.

Alguna otra sugerencia?

Saludos!
Juan Antº Castillo
Sevilla
Respuesta Responder a este mensaje
#4 Héctor Miguel
29/07/2005 - 10:54 | Informe spam
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.
Respuesta Responder a este mensaje
#5 Smartito
29/07/2005 - 11:18 | Informe spam
Buenas tardes,

Es justo lo que estaba buscando, muchisimas gracias por tu aportación.

Saludos!
Juan Antº Castillo
Sevilla
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida