Se stai automatizzando il tuo ufficio utilizzando Excel, potresti chiederti se esiste un modo per stampare automaticamente il contenuto di un intervallo di celle a una determinata ora ogni giorno. Ad esempio, potresti avere una cartella di lavoro sempre aperta, che registra input da un programma diverso. Ad una determinata ora di ogni giorno potresti voler stampare automaticamente un intervallo che contiene informazioni di riepilogo.
Esistono un paio di approcci che potresti utilizzare per risolvere questo problema, incluso l’utilizzo di Windows Scripting per gestire la stampa. Tuttavia, poiché la cartella di lavoro è sempre aperta, non è necessario ricorrere a tale opzione. Puoi invece fare affidamento sulle funzionalità macro native di Excel.
La soluzione qui considerata richiede due macro. La prima è quella che viene eseguita alla prima apertura della cartella di lavoro. Imposta il gestore eventi corretto per attivare la macro effettiva che esegue la stampa.
Private Sub Workbook_Open()
'Schedula la stampa
Application.OnTime TimeValue("17:00:00"), "Stampami"
End Sub
Questa particolare macro imposta il metodo OnTime in modo che venga attivato alle 17:00. Per specificare un’ora del giorno diversa, è sufficiente modificare l’ora (utilizzando la notazione a 24 ore) nella macro. Quando le 17:00 sono raggiunte, Excel eseguirà la macro Stampami:
Private Sub Stampami()
Sheets(2).PrintOut
'Rischedula la stampa
Application.OnTime TimeValue("17:00:00"), "Stampami"
End Sub
Questa macro non fa altro che stampare il secondo foglio della cartella di lavoro (quello che dovrebbe contenere le informazioni di riepilogo che desideri stampare) e quindi reimpostare il metodo OnTime affinché venga nuovamente attivato alle 17:00. il giorno successivo. Se si desidera stampare un intervallo di dati diverso è sufficiente modificare nella prima riga della macro l’oggetto utilizzato con il metodo PrintOut.