Hola, hoy me ha surgido esta necesidad y se me ha ocurrido la siguiente idea, aquí la dejo por si sirve de ayuda a alguien:
La idea es mostrar un mensaje de error, aviso, etc evitando el MsgBox y tener que pulsar Aceptar, agilizando el proceso.
Para el ejemplo se necesita crear un Formulario con dos Command, un Timer con el nombre msgTimer y un Label con el nombre msgLabel, por supuesto la posición, colores y tamaño del label a gusto del usuario.
Código vb:
Ver originalOption Explicit
Private Sub Command1_Click()
msgLabel = "Mensaje de prueba en el Command Uno"
End Sub
Private Sub Command2_Click()
msgLabel = "Mensaje de prueba en el Command Dos"
End Sub
Private Sub Form_Load()
' En la carga del formulario, ajustamos los valores y deshabilitamos el Timer
msgTimer.Enabled = False ' Timer detenido
msgTimer.Interval = 5000 ' Pausa 5 segundos
msgLabel.Caption = "" ' Mensaje Borrado
msgLabel.Visible = False ' Mensaje Oculto
End Sub
Private Sub msgLabel_Change()
If msgLabel.Caption = "" Then
' Mensaje en blanco, detener temporizador, ocultar mensaje
msgTimer.Enabled = False
msgLabel.Visible = False
Else
' Mensaje con datos, activar temporizador, mostrar mensaje
msgTimer.Enabled = False 'Primero desactivamos para detenerlo
msgTimer.Enabled = True
msgLabel.Visible = True
End If
End Sub
Private Sub msgTimer_Timer()
' Llegado al tiempo, borramos mensaje
msgLabel.Caption = ""
End Sub
Espero que a alguien le sea de utilidad.
Saludos