Excel vous permet de protéger et de déprotéger les feuilles de calcul. Le but, bien sûr, est d’autoriser d’autres personnes à utiliser votre classeur, mais pas de modifier certaines cellules dans chaque feuille de calcul.

Étant donné que la protection est effectuée au niveau d’une feuille de calcul, il peut être très difficile de parcourir chaque feuille de calcul dans un classeur et de les protéger ou de les déprotéger. Si vous avez 25 feuilles de calcul, vous devez activer chaque feuille de calcul, effectuer la protection ou la déprotection et passer à la suivante.

Une méthode moins longue de protection de chaque feuille de calcul dans un classeur consiste à utiliser une macro pour effectuer le travail réel. La macro suivante fera l’affaire:

Sub ProtectAllSheets()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

For Each ws In Worksheets         ws.Select         ws.Protect Password:="Password"

Next ws

Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

La macro pour déprotéger toutes les feuilles de calcul n’est que légèrement différente:

Sub UnProtectAllSheets()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

For Each ws In Worksheets         ws.Select         ws.Unprotect Password:="Password"

Next ws

Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

Bien que ces macros fonctionnent très bien, il y a quelques mises en garde.

Tout d’abord, vous devez vous assurer que la variable de mot de passe dans chaque macro est définie sur le mot de passe approprié pour vos feuilles de calcul. (Cela suppose, bien sûr, que toutes les feuilles de calcul utilisent le même passwords.)

La deuxième mise en garde est que, étant donné que la macro doit inclure le mot de passe, la sécurité globale de votre classeur peut être compromise – toute personne pouvant afficher les macros saura quels sont les mots de passe de vos classeurs.

Pour résoudre ce dernier problème, vous pouvez modifier les macros afin qu’elles demandent un mot de passe à utiliser dans leur travail. Ce qui suit serait la version de la macro qui protège les feuilles de calcul:

Sub ProtectAllSheetsPass()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String     Dim sPWord As String

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

sPWord = InputBox("What password?", "Protect All")

If sPWord > "" Then         For Each ws In Worksheets             ws.Select             ws.Protect Password:=sPWord         Next ws     End If     Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

La macro affiche une zone de saisie demandant le mot de passe. Le même mot de passe est ensuite utilisé pour protéger chaque feuille de calcul du classeur. Le même type de modification peut être apporté à la macro qui déprotège toutes les feuilles de calcul.

_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 (13075) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Unprotecting_Groups_of_Worksheets [Unprotecting Groups of Worksheets].