Mantener Formulario por unos segundos

29/01/2007 - 17:47 por J.P. | Informe spam
Buenos Días

Bueno quisiera saber como puedo hacer que cuando habra mi libro
muestre un userform por unos 5 segundos y luego desaparezca.

Alguien me puede hechar una manito

Preguntas similare

Leer las respuestas

#1 Ivan
29/01/2007 - 18:43 | Informe spam
hola J.P.,

creo que podrias hacer algo parecido a esto (suponiendo que el form se llama
UserForm1):

1º.-en un modulo normal declaras una variable boolean publica ->

Public Ver5Segundos As Boolean

2º.-en el evento Open del libro ( modulo ThisWorkbook) pones->

Private Sub Workbook_Open()
Ver5Segundos = True
UserForm1.Show
.resto codigo Open si hay
End Sub

3º.-en el modulo del formulario al principio de Activate: pones ->

Private Sub UserForm_Activate()
If Ver5Segundos Then
Application.Wait Now + TimeValue("00:00:05")
Ver5Segundos = False: Unload Me
End If
si tienes mas codigo en activate
End Sub

posiblemente sea mejor usar OnTime, pero algo debo estar haciendo mal que no
me sale
si quieres echale un ojo a Wait y OnTime en la ayuda de vba

un saludo
Ivan
Respuesta Responder a este mensaje
#2 J.P.
30/01/2007 - 14:37 | Informe spam
Buenos Días Gracias

Por su aporte pues me funciona , pero dentro del formulario tengo un
boton y pues como el wait suspende todo procedimiento el boton no
funciona y he revisado el ontime pero me arroja un error.


On 29 ene, 12:43, "Ivan" wrote:
hola J.P.,

creo que podrias hacer algo parecido a esto (suponiendo que el form se llama
UserForm1):

1º.-en un modulo normal declaras una variable boolean publica ->

Public Ver5Segundos As Boolean

2º.-en el evento Open del libro ( modulo ThisWorkbook) pones->

Private Sub Workbook_Open()
Ver5Segundos = True
UserForm1.Show
.resto codigo Open si hay
End Sub

3º.-en el modulo del formulario al principio de Activate: pones ->

Private Sub UserForm_Activate()
If Ver5Segundos Then
Application.Wait Now + TimeValue("00:00:05")
Ver5Segundos = False: Unload Me
End If
si tienes mas codigo en activate
End Sub

posiblemente sea mejor usar OnTime, pero algo debo estar haciendo mal que no
me sale
si quieres echale un ojo a Wait y OnTime en la ayuda de vba

un saludo
Ivan
Respuesta Responder a este mensaje
#3 Ivan
30/01/2007 - 17:50 | Informe spam
hola JP

tienes razon, Wait paraliza la mayoria de los procesos, aunque pensaba que
era una especie de presentacion y que el usuario no ianteractuaba.

de todas formas, no se porque ayer se me atraveso OnTime y no habia manera.
Pero en realidad es muy sencillo,. lo que ya no estoy seguro es de las
posibles interferencias con el resto de procesos que se puedan estar
ejecutando, aunque no creo que haya ningun problema

estos serian los codigos

.-en un modulo ''normal'' ->

Public Ver5Segundos As Boolean
Sub Cerrar()
If Ver5Segundos Then Unload UserForm1
Ver5Segundos = False
End Sub

en el evento Open del libro(Thisworkbook) ->

Private Sub Workbook_Open()
Ver5Segundos = True
Application.OnTime Now + TimeValue("00:00:05"), "Cerrar"
UserForm1.Show
End Sub

espero te sirva
un saludo
Ivan
Respuesta Responder a este mensaje
#4 Ivan
30/01/2007 - 17:55 | Informe spam
disculpame JP

acabo de enviar un mensaje que aun no ha aparecido y se me ha pasado una
cosa->

por sisales antes de los 5 segundos añade en el evento Terminate del
formulartio esta instruccion

->> Ver5Segundos = False
Respuesta Responder a este mensaje
#5 Ivan
30/01/2007 - 18:07 | Informe spam
y, como en mi caso es imposible que haya 2 sin 3 , reducelo a esto

en el evento Open del libro ->

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:00:05"), "Cerrar"
UserForm1.Show
'
End Sub

en un modulo normal->

Sub Cerrar()
Unload UserForm1
End Sub

y, si no me equivoco, no hace falta mas

disculpa los errores

un saludo
Ivan
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida