Ciao luca,
ti do tre ipotesi:
1) invece del msgbox accodi i messaggi su un foglio di report, cosi' puoi leggerteli quando vuoi
2) OPPURE, invece di attivare un msgbox, attivi un foglio che contiene il messaggio, con ritorno al foglio iniziale dopo N secondi. Puoi ottenerlo con questa macro (va su foglio3, dopo 5 secondi torna su foglio1:
- Codice: Seleziona tutto
Sub Mesg()
Delay = 5 '<<<<- Secondi di Pausa
Sheets(3).Select
start = Timer
Term = (start + Delay) Mod 86400
luppa:
DoEvents
If Timer < Term Then GoTo luppa
Sheets(1).Select
End Sub
NB: non ho callaudato il comportamento nell' intorno della mezzanotte, quando timer da 86330 passa a 0.
Eventualmente puoi inserire su foglio 3 un pulsante per ritornare al foglio1; in questo caso e' necessario scommentare l' istruzione DoEvents e utilizzare una macro come questa per tornare al foglio di partenza, associandola al pulsante di Foglio3:
- Codice: Seleziona tutto
Sub Sh1()
Sheets(1).Select
End Sub
3) OPPURE, invece del msgbox usi una UserForm che attivi (UserForm1.Show) al momento dell' errore e disattivi dopo gli N secondi (UserForm1.Hide); nella macro Sub Mesg (vedi qualche riga sopra) inserirai l' istruzione .Show al posto di Sheets(3).Select e la .Hide al posto di Sheets(1).Select.
Ovviamente dovrai anche generare la UserForm con il il relativo messaggio.
Ciao.