Popup excel en premier plan windows

Résolu
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   -  
PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un popup sur excel que je souhaite afficher en premier plan sur windows devant toutes les autres fenêtres (autres applicatifs...).

Vba du popup :

Sub Mamacro()
Range("a11").Select

Selection.ClearContents
ActiveSheet.Paste
Range("b11").Select
Range("c11").Select
Range("d11").Select
Range("e11").Select
Range("A11").Select
variable1 = Range("a11")
variable2 = Range("b11")
variable3 = Range("c11")
variable4 = Range("d11")
variable5 = Range("e11")
ActiveWindow.WindowState = xlMaximized
MsgBox "Le client " & variable1 & " " & Chr(10) & Chr(10) & "a contacté la société " & variable2 & " " & " fois" & Chr(10) & Chr(10) & " dont " & variable3 & " " & " fois" & " dans une agence " & Chr(10) & Chr(10) & " dont " & variable4 & " " & " fois" & " par courrier " & Chr(10) & Chr(10) & " dont " & variable5 & " " & " fois" & " au téléphone ", vbMsgBoxSetForeground

End Sub

Merci d'avance,

1 réponse

  1. Thorak83 Messages postés 1140 Statut Membre 156
     
    Bonjour,

    Mettre le msgbox en modal pour être sûre.

    MsgBox "texte", vbApplicationModal

    Cordialement
    0
    1. PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
       
      Merci Thorak83,

      Cela avance, excel clignote....et quand je clique sur l'îcone le popup apparait sans afficher la feuil excel....mais il faut que je clique encore sur l'icone !

      Je suis obligé de laisser....ActiveWindow.WindowState = xlMaximizedavant la ligne :

      MsgBox "Le client " & variable1 & " " & Chr(10) & Chr(10) & "a contacté la société " & variable2 & " " & " fois" & Chr(10) & Chr(10) & " dont " & variable3 & " " & " fois" & " dans une agence " & Chr(10) & Chr(10) & " dont " & variable4 & " " & " fois" & " par courrier " & Chr(10) & Chr(10) & " dont " & variable5 & " " & " fois" & " au téléphone ", vbApplicationModal
      0
    2. Thorak83 Messages postés 1140 Statut Membre 156
       
      mais comment ou pas quoi est lancé la macro ?
      0
    3. PYGOS69 Messages postés 452 Date d'inscription   Statut Membre Dernière intervention   21
       
      Voila ma macro qui se lance toutes les 30 secondes :

      Sub auto_open()
      Actualiser
      End Sub

      Sub Actualiser()
      ' Définit l'intervalle avec l'heure actuelle
      Uneheure = TimeSerial(Hour(Time), Minute(Time), Second(Time) + 30)
      ' Appel récursif
      Application.OnTime Uneheure, "Actualiser"
      Call Mamacro
      End Sub

      Sub auto_close()
      On Error Resume Next
      Application.OnTime Uneheure, Procedure:="Actualiser", Schedule:=False
      End Sub

      Sub Mamacro()
      Range("a11").Select

      Selection.ClearContents
      ActiveSheet.Paste
      Range("b11").Select
      Range("c11").Select
      Range("d11").Select
      Range("e11").Select
      Range("A11").Select
      variable1 = Range("a11")
      variable2 = Range("b11")
      variable3 = Range("c11")
      variable4 = Range("d11")
      variable5 = Range("e11")
      ActiveWindow.WindowState = xlMaximized

      MsgBox "Le client " & variable1 & " " & Chr(10) & Chr(10) & "a contacté la société" & variable2 & " " & " fois" & Chr(10) & Chr(10) & " dont " & variable3 & " " & " fois" & " dans une agence " & Chr(10) & Chr(10) & " dont " & variable4 & " " & " fois" & " par courrier " & Chr(10) & Chr(10) & " dont " & variable5 & " " & " fois" & " au téléphone ", vbApplicationModal

      End Sub

      Je souhaite que MsgBox s'affiche devant toutes les autres fenêtres....
      0
    4. Thorak83 Messages postés 1140 Statut Membre 156
       
      Je n'ai pas tout compris l'histoire du copier/coller ainsi que tous les Range("b11").Select qui ne servent à rien mais bon concernant le popup, je ne pense pas que ça peut se faire car c'est du code vba lancer par excel, donc la popup peut se mettre devant Excel mais devant toutes les applications Windows NON. Sauf peut être en utilisant une api windows. Je regarde ca
      0
    5. Thorak83 Messages postés 1140 Statut Membre 156
       
      Alors ca fonctionne avec l'Api Windows
      Coller ceci en haut
      Const MB_DEFBUTTON1 = &H0&
      Const MB_DEFBUTTON2 = &H100&
      Const MB_DEFBUTTON3 = &H200&
      Const MB_ICONASTERISK = &H40&
      Const MB_ICONEXCLAMATION = &H30&
      Const MB_ICONHAND = &H10&
      Const MB_ICONINFORMATION = MB_ICONASTERISK
      Const MB_ICONQUESTION = &H20&
      Const MB_ICONSTOP = MB_ICONHAND
      Const MB_OK = &H0&
      Const MB_OKCANCEL = &H1&
      Const MB_YESNO = &H4&
      Const MB_YESNOCANCEL = &H3&
      Const MB_ABORTRETRYIGNORE = &H2&
      Const MB_RETRYCANCEL = &H5&
      Public 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

      et faire
      Dim reponse As Integer
      reponse = MessageBox(0, "Votre Message", "Titre de la fenêtre", MB_ICONQUESTION)

      lien ici pour voir un peu plus
      https://access.developpez.com/sources/?page=commondlg#Messagebox
      0