Toujours ouvrir un classeur modifiable (Microsoft Excel)
Patrick se demande comment empêcher Excel d’ouvrir des classeurs en mode protégé. Il souhaite que le fichier s’ouvre en mode Normal afin que tout le monde puisse l’ouvrir, le lire et le modifier.
La réponse dépend entièrement de ce que l’on entend par «vue protégée». Si vous voulez dire que vous voulez que les feuilles de calcul ne soient pas protégées, c’est relativement facile à faire via une macro. Si vous parlez vraiment de ce que Excel appelle «vue protégée», alors c’est une situation entièrement différente.
Si vous voulez vous assurer que le classeur n’est pas protégé afin qu’il puisse être modifié une fois ouvert, une macro aussi simple que celle-ci peut faire l’affaire:
Private Sub Workbook_Open() ThisWorkbook.Unprotect End Sub
Bien sûr, cela ne protège pas les feuilles de calcul individuelles. Cela implique quelques étapes supplémentaires, car vous devez parcourir chacune des feuilles de calcul du classeur. Les macros suivantes doivent être placées dans le module ThisWorkbook pour le classeur dont vous voulez que les feuilles ne soient pas protégées:
Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Reprotect sheets that were protected on open workbook Call ReprotectSheets ' Save changes in ThisWorkbook ThisWorkbook.Save End Sub
Private Sub Workbook_Open() ' Unprotect all sheets in this workbook Call UnprotectAllSheets End Sub
Notez que les macros ne font guère plus que d’appeler d’autres macros qui font le vrai travail. Ces autres macros peuvent être placées dans un module standard du classeur:
Public arrProtectedSheets() Sub ReprotectSheets() ' Reprotect worksheets that were protected on WorkbookOpen Dim i As Integer For i = LBound(arrProtectedSheets) To UBound(arrProtectedSheets) ThisWorkbook.Worksheets(arrProtectedSheets(i)).Protect Next i End Sub
Sub UnprotectAllSheets() ' Unprotect all worksheets in this workbook Dim wks As Object Dim i As Integer i = 0 For Each wks In ThisWorkbook.Sheets If IsSheetProtected(wks) Then ' Remember names of protected sheets in order ' to reprotect them on WorkbookClose ReDim Preserve arrProtectedSheets(i) arrProtectedSheets(i) = wks.Name i = i + 1 ' Unprotect sheet wks.Unprotect End If Next wks End Sub
Private Function IsSheetProtected(ByRef wks As Excel.Worksheet) As Boolean ' Function returns TRUE If Worksheetsheet Is Protected With wks IsSheetProtected = (.ProtectContents Or _ .ProtectScenarios Or .ProtectDrawingObjects) End With End Function
L’idée derrière la macro UnprotectAllSheets est qu’elle parcourt chacune des feuilles de calcul dans le classeur et, s’il est protégé (déterminé dans la macro IsSheetProtected), le nom de la feuille de calcul est stocké dans un tableau. Le contenu du tableau est ensuite utilisé dans la macro ReprotectSheets pour re-protéger à nouveau ces feuilles de calcul. Cette approche suppose, bien sûr, qu’aucun mot de passe n’est associé à l’une des feuilles de calcul protégées.
Si vous voulez vraiment vous assurer que la vraie « vue protégée »
est désactivé, c’est une autre histoire. Les paramètres de la vue protégée sont contrôlés système par système dans le Centre de gestion de la confidentialité. Vous pouvez voir les paramètres en suivant ces étapes:
-
Affichez le
lien: / excelribbon-Displaying_Excels_Developer_Tab [onglet Développeur]
du ruban. -
Cliquez sur Sécurité des macros dans le groupe Code. Excel affiche la boîte de dialogue Centre de gestion de la confidentialité.
-
Sur le côté gauche de la boîte de dialogue, cliquez sur Vue protégée. (Voir la figure 1.)
Les paramètres d’affichage de protection réels disponibles dépendent de la version d’Excel que vous utilisez. Comme mentionné, ces paramètres sont contrôlés au niveau du système; ils ne sont pas traités sur une base classeur par classeur. Le résultat est qu’ils ne peuvent pas être contournés par le code macro. S’ils le pouvaient, cela rendrait un système complètement vulnérable à tout code se trouvant dans un classeur en cours d’ouverture – nous reviendrions à l’époque des virus de macro qui étaient courants avec certaines versions antérieures des produits Office.
Des informations supplémentaires sur le fonctionnement des paramètres de la vue protégée sont disponibles sur ce site Web de Microsoft:
https://support.office.com/en-us/article/what-is-protected-view-d6f09ac7-e6b9-4495-8e43-2bbcdbcb6653?ocmsassetID=HA010355931&CorrelationId=fce5243e-6c41-4865-89e9-530f125ea252&ui=en-US&rs=en-US&ad=US
L’ouverture ou non d’un classeur en mode protégé dépend des paramètres système de l’utilisateur. Cela signifie que le contrôle de ce qui s’ouvre appartient entièrement à l’utilisateur individuel et ne peut pas être « forcé » par un auteur de classeur. Il existe cependant des moyens d’atténuer l’impact de cette situation, et ils ont à voir avec la confiance. Notez qu’à gauche de la boîte de dialogue Centre de gestion de la confidentialité, trois paramètres contrôlent cela par rapport aux classeurs:
Éditeurs approuvés. * Les classeurs des éditeurs répertoriés dans cette zone sont approuvés et s’ouvriront directement, en contournant la vue protégée.
Emplacements approuvés. * Les classeurs stockés dans les emplacements répertoriés dans cette zone sont approuvés et s’ouvriront directement, en contournant la vue protégée.
Documents approuvés. * Les classeurs individuels indiqués dans cette zone sont approuvés et s’ouvriront directement, en contournant la vue protégée.
Pour que votre classeur contourne la vue protégée, vous devez être un éditeur de confiance, le classeur doit être stocké dans un emplacement approuvé ou il doit être noté sur le système en tant que document approuvé.
Tous ces paramètres sont, encore une fois, sous le contrôle de l’utilisateur et ne peuvent pas être modifiés via le code de macro.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (12873) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.