Se debe realizar una copia de seguridad de los datos a intervalos de tiempo regulares, ya que cualquier modificación incorrecta por parte del otro usuario o la eliminación accidental del archivo de Excel puede arruinar mucho tiempo e información.

En este artículo, cubriremos cómo realizar una copia de seguridad de un archivo de Excel usando VBA.

En este artículo, cubriremos dos formas diferentes de realizar copias de seguridad utilizando el código VBA. Hemos escrito dos macros para realizar copias de seguridad del archivo de Excel.

La macro «SaveWorkbookBackup» creará una copia de seguridad del archivo de Excel con la extensión «.bak» dentro de la misma carpeta donde se guarda el libro activo.

ArrowBackUpFileCreated

La macro «SaveWorkbookBackupToFloppy» creará una copia del libro de trabajo activo en la unidad D que actuará como archivo de respaldo para el libro de trabajo activo.

ArrowBackUpCopyCreated

Explicación del código

Si no está bien, entonces MsgBox «Copia de seguridad no guardada», vbExclamation, ThisWorkbook.Name End Si el código anterior se utiliza para mostrar el mensaje de error, cuando se produce algún error de tiempo de ejecución durante la ejecución de la macro.

NotSaveDialogBox

Si AWB.Path = «» Entonces ‘Visualización del cuadro de diálogo Guardar como para guardar archivos Application.Dialogs (xlDialogSaveAs). El código Mostrar anterior se utiliza para mostrar el cuadro de diálogo Guardar como, si el archivo no se guarda antes de realizar la copia de seguridad del archivo.

SaveAs Dialog Box

Siga el código a continuación

Option Explicit

Sub SaveWorkbookBackup()

Dim AWB As Workbook, BackupFileName As String, i As Integer, Ok As Boolean

On Error GoTo NotAbleToSave



Set AWB = ActiveWorkbook

'Assign full path of file along file name to variable BackupFileName

BackupFileName = AWB.FullName

'Checking whether file is saved

'If file is not saved then saving the file

If AWB.Path = "" Then

'Displaying Save as dialog box for file saving

Application.Dialogs(xlDialogSaveAs).Show

Else



'Removing file extension from file name

i = 0

While InStr(i + 1, BackupFileName, ".") > 0

'Find the extension of file

i = InStr(i + 1, BackupFileName, ".")

Wend



If i > 0 Then BackupFileName = Left(BackupFileName, i - 1)



'Adding back up extension ".bak" with file name

BackupFileName = BackupFileName & ".bak"

Ok = False



With AWB

.Save

'Creating Backup of file

.SaveCopyAs BackupFileName

Ok = True

End With

End If

NotAbleToSave:

'Code for error handling

Set AWB = Nothing

If Not Ok Then

MsgBox "Backup Copy Not Saved!", vbExclamation, ThisWorkbook.Name

End If

End Sub

Sub SaveWorkbookBackupToFloppy()

Dim AWB As Workbook, BackupFileName As String, i As Integer, Ok As Boolean

Dim DriveName As String

On Error GoTo NotAbleToSave



'Specify the path for making back up in D drive

DriveName = "D:\"

'Initializing the variables

Set AWB = ActiveWorkbook

BackupFileName = AWB.Name

Ok = False

'Checking whether file is saved

'If file is not saved then saving the file

If AWB.Path = "" Then

'Displaying Save as dialog box for file saving

Application.Dialogs(xlDialogSaveAs).Show

Else

'Deleting file if backup file already exists

If Dir(DriveName & BackupFileName) <> "" Then

Kill DriveName & BackupFileName

End If

With AWB

.Save

'Creating the back up file

.SaveCopyAs DriveName & BackupFileName

Ok = True

End With

End If

NotAbleToSave:

'Code for error handling

Set AWB = Nothing



If Not Ok Then

MsgBox "Backup Copy Not Saved!", vbExclamation, ThisWorkbook.Name

End If

End Sub

Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]