Questa macro consente di fare una copia di Backup in automatico del file che stiamo utilizzando all'interno di una cartella e mantenendo le versioni precedenti.
Sub Backup()
Dim Wb
As Workbook
Set Wb =
Application.
ThisWorkbook
'nome del file originale completo di percorso
CartFile = Wb.Path
NomeFile = Wb.Name
'cartella in cui effettuare il backup
CartBck = CartFile & "\Backup"
If (
Dir(CartBck, vbDirectory) = "")
Then
MkDir Path:=CartBck
End If
'nome del file di bakcup
p = InStrRev(NomeFile, ".", -1, vbTextCompare)
NomeBck =
Left(NomeFile, p - 1) & "-" &
Format(
Now(), "yyyymmdd") &
Mid(NomeFile, p, 10)
'verifica che non sia già presente un file di backup con lo stesso nome
If (
Dir(CartBck & "\" & NomeBck) <> "")
Then
Nr = 2
While (
Dir(CartBck & "\" & NomeBck) <> "")
NomeBck =
Left(NomeFile, p - 1) & "-" &
Format(
Now(), "yyyymmdd") & _
"-" & Nr &
Mid(NomeFile, p, 10)
Nr = Nr + 1
Wend
End If
'salva il file di backup e ritorna all'orginale
Application.
DisplayAlerts = False
Wb.SaveAs CartBck & "\" & NomeBck
Wb.SaveAs CartFile & "\" & NomeFile
Application.
DisplayAlerts = True
End Sub