Msgbox à fermeture automatique

Signaler
Messages postés
7
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
5 mai 2006
-
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
Bonjour, je suis sous VBA/Access2003, je cherche à faire apparaitre une boite de dialogue genre msgbox "veuillez patienter.." qui s'ouvre au début d'une tache et se ferme à la fin automatiquement :

msgbox "Veuillez patienter..."
[code à executer] 'la boite de dialogue reste affichée
msgbox.close 'la boite se ferme, ça n'existe pas mais je cherche un truc du genre

Remarque : si je peux éviter de créer une form pour ça, ça m'arrangerais, sinon je sais faire.

10 réponses

Messages postés
14755
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 janvier 2021
150
Bonjour

Tu peux utiliser une UserForm perso que tu utilise comme cela :
MaUserForm.Show
'Code
unload MaUserForm

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
Bonjour,

Il y a aussi cette possibilité:

' ################## AFFICHER UNE FENETRE D'INFORMATION
strComputer = "."
Set objWMIService = GetObject("Winmgmts:\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_DesktopMonitor")
For Each objItem in colItems
intHorizontal = objItem.ScreenWidth
intVertical = objItem.ScreenHeight
Next
Set objExplorer = CreateObject("InternetExplorer.Application")
objExplorer.Navigate "about:blank"
objExplorer.ToolBar = 0
objExplorer.StatusBar = 0
objExplorer.Left = (intHorizontal - 800) / 2
objExplorer.Top = (intVertical - 100) / 2
objExplorer.Width = 500
objExplorer.Height = 180
objExplorer.Visible = 1
objExplorer.Document.Body.Style.Cursor = "wait"
objExplorer.Document.Title = fic & " - " & Now
objExplorer.Document.Body.InnerHTML = "
Création du fichier
""" &_
fic & """
en cours , merci de patienter.
"
'''''''''''''''''''''''''''''''''
' Actions du script
''''''''''''''''''''''''''''''''
' ################## FERMER LA FENETRE
objExplorer.Document.Body.Style.Cursor = "default"
objExplorer.Quit
Set objExplorer = Nothing
Set Set colItems = Nothing
Set objWMIService = Nothing

jean-marc
Messages postés
14755
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 janvier 2021
150
Bonjour

C'est quand mme bien compliqué , ma solution est quand mme plus abordable.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
7
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
5 mai 2006

Je m'attendais à quelque chose de plus simple. Ca me plaît pas de créer une userForm pour juste afficher un "attendez svp" mais bon. J'ai vu des choses sur l'API "Messagebox" mais pas vu si on peut afficher une boite sans bouton que l'on peut fermer avec du code. Quelqu'un sait ?
Messages postés
14755
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 janvier 2021
150
Bonjour

C'est possible (du moins en VB6 g pense aussi en VBA), il faut mettre la propriété de la userform contorlbox à false.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
266
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
30 avril 2009

oui je pense pouvoir te répondre:

avec l'api findwindow, tu fais une recherche par nom pour obtenir le handle de la boite

avec l'api setfocus, tu lui colles le focus

avec l'api keyb_event, tu envoie la touche "entrée"

ta boite de dialogue se fermera au bout du temps que tu souhaites:

slts!

API @ la Loupe
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Jamais de prog à coups de keyv_event, qui dit que l'utilisateur n'aura pas mis le focus sur un autre prog ?
Solution UserForm de NHenry est à privilégier.

ciao...
BruNews, MVP VC++
Messages postés
266
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
30 avril 2009

on s'en fous puisque setfocus te permet de mettre le focus sur la boite de dialogue!!??!!
Messages postés
133
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
8 juin 2012
4
Bonjour,




Peut être ça :

Sub MsgBoxTmp()
Dim SH As Object
Set SH = CreateObject("WScript.Shell")
SH.Popup "Le message qui disparait aprés 3 secondes", 3, "Spécial julien3d", 48
Set SH = Nothing
End Sub

ctac
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
Bonsoir,

Un Popup n'est pas la solution à la question.

/auteurdetail.aspx?ID=629131 "Bonjour, je suis sous VBA/Access2003, je cherche à faire apparaitre une boite de dialogue genre msgbox "veuillez patienter.." qui s'ouvre au début d'une tache et se ferme à la fin automatiquement :

donc, sous-entendu, à la fin de la tache.
Je défends "ma" solution WMI !!!!!

Bonne prog et bonne soirée.

jean-marc