Il convient de sauvegarder les données à intervalles réguliers, car toute modification erronée par l’autre utilisateur ou suppression accidentelle du fichier Excel peut gâcher beaucoup de temps et d’informations.

Dans cet article, nous expliquerons comment effectuer une sauvegarde d’un fichier Excel à l’aide de VBA.

Dans cet article, nous allons couvrir deux façons différentes de prendre une sauvegarde à l’aide du code VBA. Nous avons écrit deux macros pour prendre la sauvegarde du fichier Excel.

La macro «SaveWorkbookBackup» créera une sauvegarde du fichier Excel avec l’extension «.bak» dans le même dossier où le classeur actif est enregistré.

ArrowBackUpFileCreated

La macro «SaveWorkbookBackupToFloppy» créera une copie du classeur actif dans le lecteur D qui servira de fichier de sauvegarde pour le classeur actif.

ArrowBackUpCopyCreated

Explication du code

If Not Ok Then MsgBox « Copie de sauvegarde non enregistrée! », VbExclamation, ThisWorkbook.Name End If Le code ci-dessus est utilisé pour afficher le message d’erreur, lorsqu’une erreur d’exécution se produit pendant l’exécution de la macro.

NotSaveDialogBox

Si AWB.Path = «  » Then ‘Affichage de la boîte de dialogue Enregistrer sous pour l’enregistrement du fichier Application.Dialogs (xlDialogSaveAs) .Show Above code est utilisé pour afficher la boîte de dialogue Enregistrer sous, si le fichier n’est pas enregistré avant d’effectuer la sauvegarde du fichier.

SaveAs Dialog Box

Veuillez suivre ci-dessous pour le code

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 vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous aimerions avoir de vos nouvelles, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]