Sunt situaţii în care, prin folosirea anumitor acţiuni, este necesară afişarea unui mesaj, dar care să nu implice acţiunea noastră de închidere; de exemplu, o serie de update-uri succesive.
Pentru asta, o variantă simplă se poate realiza printr-un mic ajutor VBA.
Public Function fcPopUpTimer(nrSec As Integer, sText As String) As String
CreateObject("WScript.Shell").PopUp sText, nrSec, "Mesaj atentionare", 0 + 48
End Function

În exemplul de mai sus, sText este variabila care implică textul ce poate fi afişat, în funcţie de context (de exemplu: „S-a realizat update-ul primei tabele!„, nrSec reprezintă numărul de secunde (1, 2, 3 etc.) cât va fi afişat mesajul, setul 0+48 se ocupă de tipul de buton care va fi afişat (0-butonul OK, 48-semnul exclamării). Mai multe opţiuni pentru buton şi simbolul afişat pot fi găsite accesând linkul.
Acolo unde este necesar, se invocă funcţia respectivă, precum în exemplul de mai jos.
Call fcPopUpTimer(2, "S-a realizat update-ul primei tabele!")
Efectul se poate remarca în figura 1.
O variantă mai sofisticată, pentru aceeaşi funcţie (fcPopUpTimer), poate implica diferite interacţiuni, în funcţie de butonul apăsat. Astfel, funcţia ar putea arăta ca mai jos.
Public Function fcPopUpTimer(sText As String) As String
Dim WshShell, btn
Set WshShell = CreateObject("WScript.Shell")
btn = WshShell.PopUp("Vreti sa continuam update-ul?", 3, "Mesaj atentionare", 4 + 48)
Select Case btn
Case 6 ' Actionarea butonului Yes
MsgBox "O decizie recomandabilã.", vbExclamation, "Actiune"
Case 7 ' Actionarea butonului No
MsgBox "Vom face update altadatã.", vbCritical, "Anulare"
Case -1 ' Nicio actiune
MsgBox "Se pare cã, încã sunteþi indecis.", vbInformation, "Amânare"
End Select
End Function
Rezultatul poate fi remarcat în figurile următoare.



