Déclaration de mot de passe en variable

barbenault

XLDnaute Nouveau
Bonjour,

Je cherche à déclarer un mot de passe comme une variable, ce mot de passe sera utilisé pour plusieurs feuilles de mon classeur, je trouve qu'il sera donc plus simple de modifier ce mot de passe une fois plutôt que sur chaque feuille (le cas échéant).

Je souhaite aussi activer la protection à chaque ouverture / enregistrement. Voici le code enregistré dans MyWorkBook :


Code:
Option Explicit

Const MDP As Variant = "XXX"

Private Sub Workbook_Open()
Call protections
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call protections
End Sub

Sub protections()
ActiveWorkbook.Protect Password:=MDP, Structure:=True, Windows:=False
Sheets("Readme").Protect Password:=MDP
Sheets("0.ProjectOverview").Protect Password:=MDP
Sheets("1.BudgetFollowup").Protect Password:=MDP
Sheets("2.ForecastedExp").Protect Password:=MDP
Sheets("4.ImportBudget").Protect Password:=MDP
Sheets("data_source").Protect Password:=MDP
End Sub

Je recontre cependant un problème lorsque je lance ma macro qui est censée déprotéger et reprotéger ma feuille.
Voici le code utilisé (je vous épargne le reste du code car le problème vient de la déprotection... il semble que MDP renvoie une valeur vide... le lien avec MyWorkBook ne se fait pas, faut-il redéclarer MDP dans chaque Sub???)

Pourriez vous m'indiquer ce qui ne fonctionne pas? Merci d'avance.

Code:
...
ActiveSheet.Unprotect Password:=MDP

... ActiveSheet.Protect UserInterfaceOnly:=True, Password:=MDP, DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True, AllowFormattingCells:=False, AllowFormattingColumns:=True, _
AllowFormattingRows:=False
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 992
Membres
104 000
dernier inscrit
dinelcia