Difficile entrare in una discussione al 18° messaggio... Proviamo lo stesso
Poiche' per fare tutto serve un Pc acceso allora supponiamo che sul Pc sia attivo anche il programma Excel.
Io direi di partire con un file che chiamiamo ad esempio GUIDA.xlsm, che conterra' gran parte delle macro.
Questo file andra' installato nella directory xlstart (sul mio pc corrisponde a C:\Users\UTENTE\AppData\Roaming\Microsoft\Excel\XLSTART) e conterra' una macro di workbook_open del tipo
- Codice: Seleziona tutto
Private Sub Workbook_Open()
next7am = Int(Now) + 1 + TimeSerial(6, 30, 0)
Application.OnTime next7am, "MainMacro"
End Sub
La directory scelta assicura che il file venga aperto all'avvio di Excel; la macro di Workbook_Open pianifica la prima esecuzione del ciclo, che sara' contenuto in una macro MainMacro.
La macro che salva in formato pdf la puoi registrare autonomamente: partendo dal file Guida.xlsm, avvii la registrazione della macro, attivi il file e il foglio da cui creare il pdf, fai un File /Salva-con-Nome, e come formato scegli "pdf"; assegni un nome fisso al documento; riattivi il file Guida.xlsm
La macro che invia l'email con l'allegato ce l'hai gia'; toglile pero' dal forndo le istruzioni ActiveWorkbook.Close SaveChanges:=True / Application.Quit che in parte metteremo nella MainMacro complessiva:
- Codice: Seleziona tutto
Sub MainMacro()
'genera il pdf:
Call MacroPerGenerarePdf '<<< Il nome della macro autoregistrata
Application.Wait (Now + TimeValue("0:00:05"))
'preliminari + invio mail:
Windows("IlFileCheDeveEssereAttivato.xlsm").Activate
Sheets("IlFoglioCheDeveEssereAttivato").Select
Call sendmailTH("IlPercorsoCompletoDelFilePdf.pdf")
'Schedula per domani:
next7am = Int(Now) + 1 + TimeSerial(6, 30, 0)
Application.OnTime next7am, "LaMacroDiInvioMail"
'Altre operazioni che devono essere fatte?
ActiveWorkbook.Close SaveChanges:=True '*** Vedi Testo
End Sub
Quello che non mi e' chiaro e' se il file da cui generare il pdf e' gia' aperto oppure e' chiuso alle 6:30 del mattino; se il file e' chiuso allora la sua apertura sara' da fare nel corso della registrazione della macro che genera il pdf, e la sua chiusura si fara' con l'istruzione marcata *** in MainMacro; se invece il file e gia' aperto allora l'istruzione *** sara' da cancellare.
Spero di non aver destabilizzato quanto gia' fatto finora...