Cerrar un cuadro de texto

Hola expertos tengo una macro que me genera una ventana emergente con msgbox y quiero que esa ventana desaparezca en unos segundos de forma automática sin tener que hacer nada. No se si la función msgbox es la más adecuada para esto o me hace falta otra función

1 Respuesta

Respuesta
1
Si presentas un cuadro de texto, hasta que no pulsen 'aceptar' (o una de las opciones que pongas), no se cerrará el mensaje.
Lo que quieres es fácil de hacer con un formulario.
Entra en el editor de Visual Basic, inserta un formulario nuevo, le crear una etiqueta y cuando quieras presentar el mensaje, le pones el texto en la etiqueta.
Una vez presentado el formulario, con un bucle controlas el tiempo transcurrido y pasados los segundos que sean cierras el formulario.
No es demasiado complicado. Pruébalo.
Perdona pero recién acabo de empezar con visual basic y no lo controlo
Me podrías poner un ejemplo
Gracias por la ayuda
A ver, en el editor de Visual Basic, crea un nuevo formulario (insertar - userform). Se llamará 'userForm1'.
En el formulario tienes que crear una etiqueta. El nombre que asignará es 'label1'.
En cualquier módulo crea el siguiente procedimiento:
Sub simularMensaje(ByVal textoMensaje As String)
    Const segundos = 5
    Dim t1 As Double
    Dim t2 As Double
    UserForm1.Show False
    UserForm1.Label1.Caption = textoMensaje
    DoEvents
    t1 = Timer
    Do
        t2 = Timer
        If t2 < t1 Then t2 = t2 + 60# * 60# * 24#
    Loop Until (t2 - t1) > segundos
    Unload UserForm1
End Sub
Ahora, en lugar de hacer...
    msgbox "mensaje..."
... utiliza...
    simularMensaje "mensaje..."

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas