Enregistrer une sauvegarde de classeur à l’aide VBA dans Microsoft Excel
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é.
La macro «SaveWorkbookBackupToFloppy» créera une copie du classeur actif dans le lecteur D qui servira de fichier de sauvegarde pour le classeur actif.
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.
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.
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]