Function SauvegarderParametres() As Boolean
Dim ClasseurDestination As Workbook
Dim FeuilleACopier As Worksheet
Chemin_Sauvegarde = "C:\Sauvegarde\"
On Error GoTo GestionErreur
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set ClasseurDestination = Workbooks.Add(xlWBATWorksheet)
Set FeuilleACopier = ThisWorkbook.Worksheets("Param1")
FeuilleACopier.Copy After:=ClasseurDestination.Sheets(Sheets.Count)
Set FeuilleACopier = ThisWorkbook.Sheets("Profils")
FeuilleACopier.Copy After:=ClasseurDestination.Sheets(Sheets.Count)
Set FeuilleACopier = ThisWorkbook.Sheets("Tables locales")
FeuilleACopier.Copy After:=ClasseurDestination.Sheets(Sheets.Count)
For i = 2 To ClasseurDestination.Sheets.Count
With ClasseurDestination.Sheets(i)
.Visible = False
.Protect UserInterfaceOnly:=True, Password:="azerty", DrawingObjects:=True, Contents:=True, Scenarios:=True
.EnableSelection = xlUnlockedCells
End With
Next
ClasseurDestination.Protect Password:="azerty", Structure:=True, Windows:=False
ClasseurDestination.SaveAs Filename:=Chemin_Sauvegarde & "Sauvegarde du " & Format(Now(), "ddmmyyyy") & " à " & Format(Now(), "hhmmss")
ClasseurDestination.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
SauvegarderParametres = True
Exit Function
GestionErreur:
SauvegarderParametres = False
End Function
Sub ImporterSauvegarde(Fichier As String)
Dim ClasseurSource As Workbook
Dim FeuilleACopier As Worksheet
Dim InstanceSauvegarde As Excel.Application
Application.DisplayAlerts = False
If FichierExistant(Fichier) = False Then
MsgBox "Le fichier de sauvegarde est inaccessible", vbCritical
Exit Sub
Else
Set InstanceSauvegarde = CreateObject("Excel.Application")
InstanceSauvegarde.Visible = True
Set ClasseurSource = InstanceSauvegarde.Workbooks.Open(Fichier)
ClasseurSource.Unprotect Password:="azerty"
ThisWorkbook.Unprotect Password:="azerty"
ThisWorkbook.Sheets(Array("Param1", "Profils", "Tables locales")).Delete
Set FeuilleACopier = ClasseurSource.Worksheets("Param1")
FeuilleACopier.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Set FeuilleACopier = ClasseurSource.Worksheets("Profils")
FeuilleACopier.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Set FeuilleACopier = ClasseurSource.Worksheets("Tables locales")
FeuilleACopier.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
End If
ThisWorkbook.Protect Password:="azerty", Structure:=True, Windows:=False
ClasseurSource.Close False
InstanceSauvegarde.Quit
Application.DisplayAlerts = True
End Sub