Stava rimanendo indietro...
Per la macro, supponiamo di metterla sull’ evento BeforeSave; in questo caso tutte le volte che si invoca File/Salva o File /Salva-con-nome il file viene salvato su una directory specificata nella macro e con “l’ attuale nome file”; questo significa pero’ che, in caso di File/Salva con nome, la copia viene fatta con il vecchio nome file, e non so quanto e’ un problema.
Oppure la mettiamo sull’ evento BeforeClose; in questo caso la copia del file non viene salvata finche’ il file non viene chiuso. Viene pero’ introdotto un salvataggio che, nel caso che il file sia stato modificato e non ancora salvato, non fa comparire all’ utente il messaggio del tipo “sei proprio sicuro di uscire senza salvare?” con il rischio che la copia sia piu’ aggiornata dell’ originale, magari con un contenuto che l’ utente volutamente non voleva salvare.
Teoricamente la potremmo mettere sia su BeforeClose che su BeforeSave, che elimina uno dei rischi ma non ambedue.
Insomma, non so in che contesto useresti questa soluzione, quindi non posso valutare la severita’ dei rischi citati; devi valutare tu.
Le macro sono uguali:
- Codice: Seleziona tutto
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.EnableEvents = False
SecondPath = "C:\Documents and Settings\NomeUtente\Documenti\" '<<<< Tua directory
AWG = ActiveWorkbook.Name
FullN = SecondPath & AWG
ActiveWorkbook.SaveAs Filename:=FullN, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Application.EnableEvents = True
End Sub
e
- Codice: Seleziona tutto
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.EnableEvents = False
SecondPath = "C:\Documents and Settings\NomeUtente\Documenti\" '<<<< Tua directory
AWG = ActiveWorkbook.Name
FullN = SecondPath & AWG
ActiveWorkbook.SaveAs Filename:=FullN, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Application.EnableEvents = True
End Sub
Per inserirle:
col tuo file aperto, premi Alt-F11; ti si apre l’ editor delle macro; sul frame di sx (Vba Project) fai doppioclick su ThisWorkbook che compare gerarchicamente sotto il nome del tuo file; copia il codice e incollalo nel frame “vuoto” di dx; se il frame contiene gia’ delle macro, verifica che non ce ne sia una i tipo BeforeClose o Before Save, secondo le tue scelte.
Modifica l' istruzione marcata <<<, inserendo il percorso dove vuoi salvare il file, usando la sintassi che vedi; questo percorso deve gia' esistere.
Ciao.