MsgBox sans interrompre le code

Signaler
Messages postés
7
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
16 avril 2007
-
Messages postés
7
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
16 avril 2007
-
Bonjour,
je cherche a afficher une msgbox (ou un pop up) qui n'interrompe pas mon code. J'ai essayé toutes les options dispos, je n'ai rien trouvé.
Est ce que quelqu'un l'a déjà fait ?


Thx

13 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
126
Avec le msgbox standard, je ne pense pas que ce soit possible, mais tu peux toujours te faire une form qui émule un msgbox et qui ne soit pas modale !
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Une msgbox est modale (donc elle interromp tout le reste).
Tu peux toujours, alors, lui substituer une Form ou même une Frame, que tu affiches à la demande.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Le msgbox de VB ne permet pas de ne pas suspendre le code.

Mais en plus de la solution de Dark, tu peux aussi regarder du coté de l'api windows MessageBox, je crois qu'elle ne bloque pas le code.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Bonsoir à tous,

Tout à fait Casy, en voici la syntaxe qui m'a été fourni et expliquer par Econs :
Dans ta form :

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

' utilisation :

  MessageBox Me.hwnd, "Bonjour, je rend la main !" & , "Information utilisateur", vbOKOnly Or vbInformation

A+
Exploreur

 
Messages postés
7
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
16 avril 2007

Bonjour,
merci bcp pour votre rapidité.
J'ai essayé ce code :

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

---------------------

MessageBox Application.hwnd, "Bonjour" ,"Titre", vbOKOnly

ca ne marche pas, je n'ai toujours pas la main tant que je n'ai pas cliqué sur OK...
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Cette boîte de dialogue permet à ta source de continuer tous travail en arrière plan, mais la fenêtre de la boite de message restera toujour affichée...

Il vaut mieux comme te le suggère les autre réponses, te faire ta propre MsgBox via une autre Form...

A+
Exploreur

 
Messages postés
7
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
16 avril 2007

salut
j'ai fini par passer sur un userform non modal, mais j'ai un nouveau problème.
a chaque fois que je dois afficher qqch, il récupère le meme userform et du coup le remplace (en écrasant les données of course). et je n'arrive pas a lui faire comprendre que je veux un autre popup...
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
126
Il te suffit de créer une nouvelle instance de ta feuille, par exemple :

Dim feuille As TaFeuille

feuille = new TaFeuille
feuille.show
Messages postés
7
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
16 avril 2007

thx
une petite dernière pour finir :
si je crée x userform, comment faire pour que quand on les ferme manuellement elles soient supprimées du workbook ?
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
126
Il te faut les décharger et non uniquement les masquer :
Au lieu de faire taForm.Hide
Fait : Unload taForm
Messages postés
7
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
16 avril 2007

merci beaucoup
Messages postés
7
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
16 avril 2007

quand y en a plus, y en a encore...

j'ai fait tout ce que vous m'avez indiqué, et ca marche.mais j'ai un nouveau pb qui est apparu.
en fait ma macro se relance automatiquement toutes les 15 secondes (avec un application.wait). pour l'arreter du coup je fait Echap, coupe le code (End), mais du coup ca me ferme toutes les userform que j'ai créé.
j'ai peur de devoir faire des msgbox non modales du coup, et je n'y arrive vraiment pas (MessageBox(Application.hwnd, "Bonjour", "Test", vbInformation) ne marche pas).

encore un fois merci pr votre aide
Messages postés
7
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
16 avril 2007

some news ?