Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Msgbox a tempo (utility)

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Msgbox a tempo (utility)

Postdi Flash30005 » 14/02/18 08:27

Da tempo uso con soddisfazione questo script e lo condivido per eventuali esigenze degli utenti
La macro permette di avere un messaggio a tempo con risposta automatica (prefissata) dopo il tempo trascorso (in secondi)
Il classico messaggio con risposta "Si" o "No"
è una macro di questo tipo
Codice: Seleziona tutto
Sub MsgboXNormal()
Msga = "Vuoi elaborare?"
Risp = MsgBox(Msga, vbYesNo)
If Risp = 6 Then
    MsgBox "Elabora"
Else
    MsgBox "Salta Elaborazione"
End If
End Sub

Excel attende una risposta senza la quale non prosegue

Mi è successo di lanciare la macro che avrebbe dovuto fare sia un aggiornamento dati (veloce) sia una elaborazione (con tempi lunghi e che a volte non faccio eseguire), e ritrovare, al mio ritorno, l'attesa della risposta
a questo punto ho ritenuto utile un messaggio a tempo che, dopo trascorso, eseguisse la routine prevista.

Codice: Seleziona tutto
Sub MsgboxDelay()
Const wshYes = 6
Const wshNo = 7
Const wshYesNoDialog = 4
Const wshQuestionMark = 32
Dim xlApp, xlBook
Dim CurrDir
TR = 10 'secondi
Set objShell = CreateObject("Wscript.Shell")
Risp = objShell.Popup("Vuoi elaborare? Risp in " & TR & " sec ", TR, "Programma di aggiornamento", wshYesNoDialog + wshQuestionMark)
If Risp <> wshNo Then
    MsgBox "Elabora"
Else
    MsgBox "Salta Elaborazione"
End If
End Sub


La condivido per eventuali vostri impieghi
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8497
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Sponsor
 

Re: Msgbox a tempo (utility)

Postdi Marius44 » 14/02/18 18:51

Ciao Flash
Innanzi tutto grazie per la condivisione.
Potresti spiegarmi un passaggio?

Perchè utilizzi queste righe di codice?
'Const wshYes = 6
'Const wshNo = 7
Const wshYesNoDialog = 4
Const wshQuestionMark = 32
'Dim xlApp, xlBook
'Dim CurrDir

Quelle che ho commentato mi sembrano ininfluenti ai fini del risultato.
Poi poni le costanti 6 e 7 ma poi utilizzi wshNo.

Vorrei capire perchè dichiararle se sono, a mio parere, ininfluenti. Ai fini della professionalità, tanto di cappello.
Grazie,
Mario
Marius44
Utente Senior
 
Post: 501
Iscritto il: 07/09/15 22:00

Re: Msgbox a tempo (utility)

Postdi Anthony47 » 15/02/18 02:09

Flash, i tag per favore :D

Pero' a me non sempre funziona...
Cioe':
-su un Win7 64bit + Office 2010 non funziona se imposto TR>1 sec
-su Win7 32bit + Office 2016 funziona
-su Win10 64bit + Office 2016 funziona

Qualcuno di voi ha una configurazione come quella che a me non va?

Quanto alle dichiarazioni delle Const wshYes = 6 / Const wshNo = 7, esse sono necessarie proprio perche' si vuole utilizzarle al posto dei valori numerici 6 e 7 (in realta' basterebbe dichiarare la solo wshNo, l'unica adoperata nel codice pubblicato). Una alternativa poteva essere l'uso delle enumerazioni vbYes e vbNo il cui valore e' appunto 6 e 7 e il cui significato e' analogamente chiaro.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17003
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Msgbox a tempo (utility)":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti