Msgbox qui s'affiche au premier plan

Andry

XLDnaute Junior
Bonjour à tous,

quelqu'un peut me dire comment on affiche un msgbox en premier plan?
je souhaite qu'il s'affiche par dessus tout autre programme qui tourne sur le pc!

si mon userform est affiché, il s'affiche bien au premier plan, mais si l'userform est reduit, il ne s'affiche pas!

Merci d'avance!
 

Andry

XLDnaute Junior
Re : Msgbox qui s'affiche au premier plan

"oui" excel est actif (j'ai mis application.visible = false)

c'est un userform qui tourne en permanence et qui se met à jour tout les 10s.

Très rapidement, l'utilisateur renseigne dans un textbox une heure et dans un autre textbox l'heure + 8H, lorsqu'on arrive vers la fin (ie heure+8) j'affiche le fameux msgbox "attention c'est bientôt la fin". Entre temps l'utilisateur peut ou pas réduire l'userform pour utiliser d'autres application.
 

Speel

XLDnaute Occasionnel
Re : Msgbox qui s'affiche au premier plan

Pour voir si je suis proche de ta demande.... a tester
 

Pièces jointes

  • Classeurtest.xlsm
    18.4 KB · Affichages: 71
  • Classeurtest.xlsm
    18.4 KB · Affichages: 62
  • Classeurtest.xlsm
    18.4 KB · Affichages: 62

camarchepas

XLDnaute Barbatruc
Re : Msgbox qui s'affiche au premier plan

Bonjour Andry , Speel,

Le petit problème étant le temps d'ouverture d'IE, plus ou moins long en fonction de la config et de pas mal d'autres choses.

Je propose une très légére modification du code de Speel Que je resalut au passage dont l'idée est trés intéressante.

Code:
Dim IE As Object 'Ici déclaration de l'objet en variable globale locale
' a adapter pour ton application
Sub PourTest()
'Mise en place de la fenêtre IE en invisible
Prepa_Pop_up "attention c'est bientôt la fin"
If Application.Wait(Now + TimeValue("0:00:10")) Then ' ici temps sur 10 secondes
  Application.SendKeys ("%{TAB}")
  DoEvents
  'Affichage de la fenêtre IE
  msgbox_popup 5
End If
IE.quit
Set IE = Nothing
End Sub
Sub Prepa_Pop_up(Txt As String)
'Anticipation chargement et création de l'écran IE
Set IE = CreateObject("internetexplorer.application") 'Création de l'instance IE avant d'en avoir besoin
Txt = Replace(Replace(Txt, vbCr, "<BR>"), vbLf, "<BR>")
Txt = "<FONT SIZE=10 color='red'><CENTER>" & Txt & "</CENTER></FONT>"
With IE
  .Navigate ("about:blank")
  .Width = 700
  .Height = 150
  .Top = 200
  .Left = 250
  .document.write Txt
  .document.Title = "Message de Andry"
  .addressbar = False
  .MenuBar = False
  .StatusBar = False
  .Toolbar = False
End With
End Sub
Sub msgbox_popup(Durée As Integer)
'Affichage de l'écran IE
'On Error Resume Next
IE.Visible = True
Application.Wait Now + Durée / 3600 / 24
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Msgbox qui s'affiche au premier plan

Bonjour à tous

Très rapidement, l'utilisateur renseigne dans un textbox une heure et dans un autre textbox l'heure + 8H, lorsqu'on arrive vers la fin (ie heure+8) j'affiche le fameux msgbox "attention c'est bientôt la fin". Entre temps l'utilisateur peut ou pas réduire l'userform pour utiliser d'autres application.

Un autre suggestion (en utilisant le planificateur de tâches Windows et/ou Vbscript , PowerShell)
Voir des exemples
L'avantage est que cela mobilisera beaucoup moins de ressources sur le PC que d'avoir une macro qui tourne pendant huit heures.
On pourrait imaginer un script qui se base sur l'heure d'ouverture de la session Windows de l'utilisateur et donc une tache planifiée qui huit heures plus tard afficher un MsgBox (créé par un script VBS)

NB: J'utilise ce système (Scheduled Tasks + VBScript) pour afficher un MsgBox (le matin et l’après-midi) m'indiquant qu'il est l'heure de faire une pause ;)
Cela fonctionne très bien et le MsgBox s'affiche au premier plan quelque soit le logiciel que j'utilise.
 

Andry

XLDnaute Junior
Re : Msgbox qui s'affiche au premier plan

Bonjour à tous
@speel, effectivement ça fonctionne mais le msg box se ferme trop vite . encore merci

@camarchepas, j'ai testé et ça marche!! impécable, je viens de finir de d'adapter à mon application. Merci

@staple1600 l'idée me tente, dès que j'aurai le temps je vais essayer! merci

Merci à tous pour l'entraide
 

Discussions similaires

Réponses
10
Affichages
372

Statistiques des forums

Discussions
312 177
Messages
2 085 973
Membres
103 073
dernier inscrit
MSCHOE16