Excel - Copie Sequenziali di Salvataggio su un altro Disco

Asked By Nemo on 21-Jun-12 01:50 PM
Ciao a tutti,
sto aiutando un collega, che ?? disperato, in quanto degli operatori
d'impianto gli hanno, accidentalmente,  cancellato un file di Excel con 05
(cinque) mesi di lavoro ed ora ha perso tutto l'archivio storico dei
carichi e scarichi di tutti gli impianti dello stabilimento.

Il file.xls era in rete, all'interno di una cartella condivisa, dove,
purtroppo, chiunque pu?? metter mano: aprire, modificare e cancellare!!

Per cui, questa settimana al fine di aiutarlo, mi sto specializzando
nella ricerca del salvataggio dati.

1)In un forum ho trovato indicazioni per un add-in di excel, chiamato:
Autosafe VBE.xla
scaricabile gratuitamente da: http://www.jkp-ads.com/Download.asp

E' un file.xla che *salva copie sequenziali* del file stesso in una
posizione desiderata del disco C:\ oppure su un'altro disco (esempio: P:\
Q:\ U:\ W:\  ecc.)


2)In un altro forum ho trovato questa macro che non riesco a farla
partire, per cui sarei grato se mi aiutaste.
forum.masterdrive.it/excel-80/copia-backup-automatica-file-excel-9904/
???Basandomi sul codice postato da Kian per renderlo automatico basta fare
un loop infinito???

Private Sub Workbook_Open()
Dim Prova As Boolean
Dim DataIniziale As Date
Dim DataFinale As Date
Prova = False
DataIniziale = Now
Do Until Prova
DoEvents
DataFinale = Now
If Minute(DataFinale - DataIniziale) = 10 Then
DataIniziale = Now
Dim NomeOrigine As String
Dim NomeDestinazione As String
NomeOrigine = Left(ActiveWorkbook.Name, (Len(ActiveWorkbook.Name) - 4))
NomeDestinazione = "C:\NomeOrigine" & Year(Date) & Format(Month(Date),
(Time), "00") &
Format(Second(Time), "00") & ".xls"
ActiveWorkbook.Save
ActiveWorkbook.SaveCopyAs NomeDestinazione
End If
Loop
End Sub

Nell'esempio riportato il codice viene eseguito all'apertura del file.
Ogni 10 minuti esegue il codice per il backup.
Ho copiato la macro nell'editor VB di excel (Alt+F11) in Workbook, ma non
so come renderla attiva.
Dimenticavo di dirvi che attualmente usiamo WinXP con Office 2003.
Grazie in anticipo per qualunque risposta positiva.
Ciao,
Nemo


Mauro Gamberini replied to Nemo on 21-Jun-12 10:30 AM
Un backup normale, no?
Immagino che non ci sia solo quel file ad essere importante... ;-)

Comunque, un modo fra i tanti.

Questo nel modulo di ThisWorkbook:

Private Sub Workbook_Open()
Call mTimer
End Sub

Questo in un modulo standard:

Public Sub mSalva()

Dim d As String
Dim h As String
Dim sPath1 As String
Dim sPath2 As String

sPath1 = "C:\Prova\"
sPath2 = "C:\Prove\"
d = Format(Date, "yyyymmdd")
h = Format(Time, "hhmmss")
ThisWorkbook.SaveAs sPath1 & d & "_" & h & ".xls"
ThisWorkbook.SaveAs sPath2 & d & "_" & h & ".xls"

Call mTimer

End Sub

Public Sub mTimer()
Application.OnTime Now + TimeValue("00:10:00"), "mSalva"
End Sub


Modifica le path dei due salvataggi con le tue.
Una sarà la directory di lavoro, l'altra quella dove
fai i backup.
Qui il salvataggio è fissato a 10 minuti.
Vedi OnTime nella guida del vb di Excel.

--
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/
Nemo replied to Mauro Gamberini on 21-Jun-12 05:25 PM
[...]


Grazie 1000 Mauro!
Per il semplice backup, hai completamente ragione, infatti mi chiedo e
non capisco perch?? il "Local IT" non ha provveduto a mettere in atto
quelle accortezze, basate sui privilegi di lettura/scrittura/
cancellazione che di solito ci sono sulle shared folder.


Comunque, grazie per la tua risposta, durante il fine settimana far??
qualche prova.
Un cordiale saluto,
Nemo