found out how to generate a dialog box disappearing after a defined number of seconds, as a function, using shell :
J'ai trouvé comme faire apparaître une boite de dialogue, en l'appelant via un script de shell, en tant que fonction via VBA. Cela permet de la faire disparaître automatiquement après qques secondes. Toutefois, j'aurais besoin de récupérer le bouton qui a été appuyé, qu'il s'agisse de ok ou de annuler. Or le script ci-dessous ne permet que de la faire disparaître, afficher les boutons ok et annuler, mais pas de récupérer le bouton appuéy dans un variable. Je cherche de l'aide pour cette dernière étape :
===========
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Sub Main Dim AckTime As Double, InfoBox As Object, Info, Message As String, Timout As Double, Button As Integer Timout = 1.5 Button = 1 Title = "The message shall vanish in " & Timout & " seconds" Message = "HELLO !" SetMicrophone 0 Dim chk As Boolean chk = MessageTimeOut(Message, Title, Timout, Button) 'if chk returned FALSE that means the function was not executed successfully End Sub Function MessageTimeOut(sMessage As String, sTitle As String, dSeconds As Double, iButton As Integer) As Boolean Dim Shell Set Shell = CreateObject("WScript.Shell") Shell.Run "mshta.exe vbscript:close(CreateObject(""WScript.shell"").Popup(""" & sMessage & """," & dSeconds & ",""" & sTitle & """," & iButton & "))" MessageTimeOut = True End Function
En revanche si c'est codé comme ci-dessous, je peux récupérer le bouton, mais je n'ai pas de disparition automatique après le timeout. Allez comprendre... :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub Main ' https://www.vbsedit.com/html/f482c739-3cf9-4139-a6af-3bde299b8009.asp Dim WshShell, BtnCode Set WshShell = CreateObject("WScript.Shell") BtnCode = WshShell.Popup("Do you feel alright?", 2, "Answer This Question:", 1 ) MsgBox (BtnCode) End Sub
Merci pour votre aide
Partager