MsgBox en arrière plan.

  • Initiateur de la discussion Initiateur de la discussion Hulk
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Hulk

XLDnaute Barbatruc
Hello tout le monde,

J'ai un pb avec des MsgBox, parfois elles se placent derrière la fenêtre du classeur.

Petit fichier plus explicite.

Mille merci pour vos réponses.

Bonne soirée.

Hulk.
 

Pièces jointes

Re : MsgBox en arrière plan.

Bonsoir Hulk, le fil,

Personnellement, je n'ai pas ce problème! Le fait de cliquer sur ton "bouton macro", me remet Excel au premier plan et ta msgbox par dessus.

Donc je ne peux pas tester l'astuce ci-dessous! Tiens nous au courant.

Code:
MsgBox("...")
[COLOR="Blue"]Frame.Visible = True
[/COLOR]

Bonne soirée
 
Re : MsgBox en arrière plan.

Bonsoir,

même constat qu' Excel-lent, pas de probleme non plus. Même apres une vingtaine d'essais, que ce soit en utilisant ton bouton ou en executant la macro depuis le VBE.

Désolé de ne pas être arrivé a reproduire le problême.

Bon courage

A+🙂
 
Re : MsgBox en arrière plan.

Hello le forum, Bigfish, Excel-ent

Merci de me répondre !

J'aurais dû préciser (et même que c'est bête de ma part d'avoir joint ce fichier) que sur ce fichier il n'y a pas de problème parce que la macro est simple, mais lorsque c'est une ou des macros plus complexes, parfois ça m'arrive...

Au fait j'aurais juste dû simplement poser la question :
Comment faire pour qu'une MsgBox s'affiche toujours au premier plan ?

Autant pour moi 😱

De plus je viens de voir pleins de trucs style:

SystemModal Toutes les applications sont interrompues jusqu'à ce que l'utilisateur réponde au message. (c'est pas le top)

MsgBoxSetForeground Spécifie la fenêtre de message comme fenêtre de premier plan.

Mais je ne parviens pas à y placer au bon endroit 😀 ... J'y arriverai bien !

N'hésitez pas.

Merci encore 😉

@++.

Hulk.
 
Re : MsgBox en arrière plan.

Buenas noche,

Bon ben j'ai trouvé ça, pour que la MsgBox voulue soit toujours au premier plan, et qui est très bien.

Bravo à l'auteur.. merci à lui.

Dans un module:

'Alain Cros
Private Declare Function MessageBox& Lib "user32" Alias "MessageBoxA" _
(ByVal hwnd&, ByVal lpText$, ByVal lpCaption$, ByVal wType&)
Private Declare Function GetForegroundWindow& _
Lib "user32" ()
Private Const MB_SYSTEMMODAL& = &H1000&

Sub Message()
MessageBox GetForegroundWindow, "Coucou !", "Salut", MB_SYSTEMMODAL
End Sub

Sub LeTempsDeChangerDapplication()
Application.OnTime Now + TimeSerial(0, 0, 5), "Message"
End Sub

et dans le code de la feuille voulue, exemple:
if Range("A1") = "OK" Then Message

Juste que, chez moi il y a un petit carré à gauche de la barre bleu de la MsgBox, en attendant de trouver la manière de l'enlever...

Buenas noche a todos.

Hulk
 
Re : MsgBox en arrière plan.

bonjour Hulk Bigfish Excel-lent le forum pas de pb...de premier plan !!!

Private Const MB_SYSTEMMODAL& = &H1& =+bouton annuler
Private Const MB_SYSTEMMODAL& = &H10& bouton critique
Private Const MB_SYSTEMMODAL& = &H100& supprime image
 
Re : MsgBox en arrière plan.

Salut à tous,

Bon ben apparemment il ne prend pas en compte le MB_INFORMATION&
il ne m'affiche pas la boîte information, il l'affiche normalement.

Excalibur j'ai rajouté On Error Resume Next et pareil.
Utiliser un USF ?.. hmm je dois tout recommencer le binz 😀, si vraiment pas de solution oui, mais je préfére continuer avec les MsgBox..

Roland_M tu dis de mettre DoEvents avant l'appel de la msgbox ? Mais je dois juste mettre DoEvents avant le if, rien d'autre ? Désolé je ne sais pas (encore) utiliser cette fonction.. 😱
Tu dis aussi que tu n'as pas de problème, tu veux dire que chez toi, avec ce même code, tu as la MsgBox information avec sa p'tite icône ?

Serait-ce ma version d'Excel (2003) qui n'est pas compatible avec MB_INFORMATION ? Je doute puisque ça joue avec MB_SYSTEMMODAL.

Petit détail, je n'arrive pas à saisir le "_" de MB_INFORMATION.. marrant !

Je pose là le code avec ce que j'ai rajouté en rouge et qui ne joue pas, dites-moi juste si c'est correcte, si oui et que chez moi non ben ma foi, je grr passerai par des USF.
**********************************************************************
Private Declare Function MessageBox& Lib "user32" Alias "MessageBoxA" _
(ByVal hwnd&, ByVal lpText$, ByVal lpCaption$, ByVal wType&, ByVal wType&) 'Je doute de ça !
Private Declare Function GetForegroundWindow& _
Lib "user32" ()
Private Const MB_SYSTEMMODAL& = &H100&
Private Const MB_INFORMATION& = 64
Sub Message()
If Sheets("Feuil1").Range("A1") = "Salut" Then
MessageBox GetForegroundWindow, "Salut les Exceliens, exceliennes !", "MsgBox 1", MB_SYSTEMMODAL, MB_INFORMATION
End If
If Sheets("Feuil1").Range("A1") = "Coucou" Then
MessageBox GetForegroundWindow, "Coucou les Exceliens, Exceliennes !", "MsgBox 2", MB_SYSTEMMODAL, MB_INFORMATION
End If
End Sub
Sub LeTempsDeChangerDapplication()
Application.OnTime Now + TimeSerial(0, 0, 5), "Message"
End Sub
**********************************************************************
Sans ce que j'ai rajouté, le code fonctionne bien.
Donc normalement avec ce que j'ai rajouté, je devrais avoir une MsgBox information.

Ultime tentavite avant capitulation 😀

Très bonne journée à tous et merci encore pour votre aide !!

Hulk.
 
Re : MsgBox en arrière plan.

Bonjour Tous,

De quelle icône parles-tu ?
A voir :
Code:
Private Declare Function MessageBox& Lib "user32" Alias "MessageBoxA" _
(ByVal hwnd&, ByVal lpText$, ByVal lpCaption$, ByVal wType&)
Private Declare Function GetForegroundWindow& Lib "user32" ()

Dim N As Integer
Sub Message()
For N = 1 To 4096
  MessageBox GetForegroundWindow, "Coucou !", [A1] & " , moi c'est " & N, N
Next
End Sub

Sub LeTempsDeChangerDapplication()
Application.OnTime Now + TimeSerial(0, 0, 5), "Message"
End Sub
Ctrl + Pause pour arrêter la boucle.

Tu remarqueras qu'il n'est pas besoin d'entrer les nombres en hexadécimal !
 
Dernière édition:
Re : MsgBox en arrière plan.

Salut à tous, Lii,

J'ai essayé ton code, mais je n'ai pas réussi à en sortir, j'ai dû faire Contrôle+Alt+Delete pour tout arrêter !
Tu dis pour sortir faire Contrôle+Pause, mais au risque de passer pour l'ignorant fini, c'est quoi la touche pause ?

Et pour l'icône dont je parle, c'est qu'avec le code ci-dessus, je devrais avoir une MsgBox information avec sa petite icône.
(voir photo jointe)

Merci pour ta contribution Lii.

Je reviendrais plus tard, je dois me sauver.

Bonne journée à tous !

Hulk.
 

Pièces jointes

  • MsgBox info.jpg
    MsgBox info.jpg
    36.5 KB · Affichages: 2 574
Re : MsgBox en arrière plan.

re, une derniere tentative

Option Explicit
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
Private Declare Function GetForegroundWindow& _
Lib "user32" ()
Private Const MB_SYSTEMMODAL& = &H100&
Private Const MB_INFORMATION& = &O64&
Sub Message()
If Sheets("Feuil1").Range("A1") = "Salut" Then
MessageBox GetForegroundWindow, "Salut les Exceliens, exceliennes !", " MsgBox 1", MB_SYSTEMMODAL & MB_INFORMATION
End If
If Sheets("Feuil1").Range("A1") = "Coucou" Then
MessageBox GetForegroundWindow, "Coucou les Exceliens, Exceliennes !", " MsgBox 2", MB_SYSTEMMODAL & MB_INFORMATION
End If
End Sub
Sub LeTempsDeChangerDapplication()
Application.OnTime Now + TimeSerial(0, 0, 5), "Message"
End Sub

ps salut lii pas vu
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
17
Affichages
2 K
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
907
Réponses
3
Affichages
554
Retour