¿como puedo cerrar un msgbox desde codigo?, 


JUAN M AFAN DE RIBERA
=====================

Bueno, para variar, yo me he complicado la vida y he creado un procedimiento
que cierra un msgbox. A este procedimiento se le ha de pasar como argumento
el título de la ventana (caption) del msgbox. Aquí está, pégalo en un módulo
estandar:

'************* Código ***************
' Ejemplo de cómo cerrar un cuadro de
' mensaje (msgbox) a través de código
'
' Por qué?: Porque alguien lo preguntó
'
' Fecha: 22/04/2003
' Autor: Juan M. Afán de Ribera
'

Private Declare Function PostMessage Lib "user32" _
   Alias "PostMessageA" _
   (ByVal hwnd As Long, _
   ByVal wMsg As Long, _
   ByVal wParam As Long, _
   lParam As Any) As Long

Private Declare Function FindWindow Lib "user32" _
   Alias "FindWindowA" _
   (ByVal lpClassName As String, _
   ByVal lpWindowName As String) As Long

Private Const WM_CLOSE = &H10

Sub cerrarMensaje(tituloVentana As String)
Dim valRetorno As Long
Dim nombreClase As String

   'buscamos el msgbox con el título expuesto
   valRetorno = FindWindow("#32770", tituloVentana)
   'si ha sido encontrado...
   If valRetorno <> 0 Then
      '... lo cerramos
      PostMessage valRetorno, WM_CLOSE, 0&, 0&
   End If

End Sub
'************ Fin código ***************

Si has llegado hasta aquí es posible que te preguntes: ¿pero cómo porras se
va a ejecutar este código si un msgbox es una ventana modal, de las que
paran todo mientras no obtengan una respuesta? Ahhh, amigo, tienes que ir al
evento Al cronómetro del formulario y escribir en él:

    Call cerrarMensaje("titulo_de_la_ventana_del_msgbox")

poniendo, como no, el intervalo que mejor te parezca en la propiedad
"Intervalo de cronómetro" (recuerda: 1000 = 1 segundo)


BUHO
====

sigo ahora con lo del Msgbox....es la Api para que,aunque no se cierre,
por lo menos sea NO modal
Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long
Const MB_ICONASTERISK = &H40&

Y luego ya se llama asi desde cualquier sitio

Call MessageBox(100, "Esto es NO modal.", "Ejemplo Msgbox No Modal ", MB_ICONASTERISK)

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)