Forcer à nouveau la protection d’une feuille de calcul (Microsoft Excel)
Barry peut verrouiller une feuille de calcul afin que seuls ceux à qui il donne le mot de passe puissent la modifier. Si la personne entre le mot de passe, apporte des modifications, puis enregistre le classeur contenant la feuille de calcul, cette feuille de calcul est alors non protégée. Barry se demande s’il existe un moyen pour que, lors de l’enregistrement de la feuille de calcul, Excel puisse rappeler à l’utilisateur de protéger à nouveau la feuille de calcul en utilisant le même mot de passe utilisé à l’origine.
Il existe plusieurs façons de résoudre ce problème. Si vous avez attribué un mot de passe à une feuille de calcul, vous devez simplement vous assurer que le même mot de passe est utilisé pour protéger à nouveau la feuille de calcul lorsque le classeur est enregistré. Cela se fait facilement en utilisant une macro qui peut être liée à l’événement BeforeSave. Cette macro doit être ajoutée à l’objet ThisWorkbook:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Sheets("ABC").Protect ("XYZ") End Sub
Cet exemple suppose que la feuille de calcul que vous souhaitez protéger est nommée ABC et que le mot de passe utilisé pour protéger la feuille de calcul est XYZ. Vous voudrez modifier ces valeurs pour refléter votre feuille de calcul et votre mot de passe réels.
Notez que cette macro re-protège automatiquement la feuille de calcul chaque fois que le classeur est enregistré. Ainsi, si un utilisateur a une longue session de travail avec la feuille de calcul et enregistre le classeur plusieurs fois au cours de cette session, il devra déprotéger la feuille de calcul assez souvent. Si vous préférez, vous pouvez créer une macro qui vous demandera si la feuille de calcul doit être re-protégée:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If MsgBox("Reprotect Sheet ABC?", vbYesNoCancel) = vbYes Then Sheets("ABC").Protect ("XYZ") End If End Sub
Bien entendu, cette approche signifie qu’il est possible qu’une feuille de calcul ne soit pas protégée à nouveau, si l’utilisateur choisissait de ne pas la protéger à nouveau.
Une autre approche n’implique pas du tout l’utilisation de macros, mais utilise une méthode différente pour assurer votre protection. Dans la protection de feuille de calcul traditionnelle, vous mettez en forme des cellules individuelles comme déverrouillées, puis vous appliquez une protection à la feuille de calcul afin qu’aucune cellule verrouillée ne puisse être modifiée.
Si vous ne marquez aucune cellule comme déverrouillée (ce qui semble être ce que Barry fait), rien dans la feuille de calcul ne peut être modifié sans le mot de passe.
À partir d’Excel 2002, vous pouvez en fait protéger des plages de cellules individuelles dans une feuille de calcul. Suivez ces étapes:
-
Choisissez Protection dans le menu Outils, puis choisissez Autoriser les utilisateurs à modifier les plages. Excel affiche la boîte de dialogue Autoriser les utilisateurs à modifier les plages.
(Voir la figure 1.)
-
Cliquez sur le bouton Nouveau. Excel affiche la boîte de dialogue Nouvelle plage. (Voir la figure 2.)
-
Dans la zone Titre, entrez le nom que vous souhaitez utiliser pour cette plage.
-
Dans la zone Fait référence aux cellules, entrez la plage que vous souhaitez que les utilisateurs puissent modifier. (S’il y a plusieurs plages que vous souhaitez utiliser ce même mot de passe, vous pouvez séparer ces plages par une virgule.)
-
Dans la zone Mot de passe de plage, saisissez le mot de passe que vous souhaitez donner à vos utilisateurs.
-
Cliquez sur OK. Vous êtes à nouveau invité à saisir le mot de passe.
-
Saisissez une seconde fois le mot de passe que vous avez utilisé à l’étape 5. La plage apparaît maintenant dans la boîte de dialogue Autoriser les utilisateurs à modifier les plages.
-
Cliquez sur OK pour fermer la boîte de dialogue Autoriser les utilisateurs à modifier les plages.
-
Protégez votre feuille de calcul comme vous le feriez normalement.
Il n’y a qu’une chose dont vous devez vous souvenir lorsque vous protégez votre feuille de calcul (étape 9). Puisque vous n’avez déverrouillé aucune cellule, toutes les cellules de la feuille de calcul seront protégées. Vous devez vous assurer que la protection que vous appliquez autorise la sélection des cellules verrouillées. Si, une fois la feuille de calcul protégée, un utilisateur tente de modifier une cellule qui se trouve dans la plage que vous avez spécifiée à l’étape 4, il lui est demandé le mot de passe que vous avez spécifié à l’étape 5. Lorsqu’il le fournit, il peut apporter des modifications à toutes les cellules dans le périmètre.
L’avantage de cette approche est que la protection de la feuille de calcul n’est pas supprimée – la feuille de calcul est toujours protégée car l’utilisateur n’a jamais supprimé cette protection. Ainsi, l’utilisateur n’a jamais besoin de connaître le mot de passe de la feuille de calcul entière. Lorsque l’utilisateur ferme et rouvre le classeur, la feuille de calcul est toujours protégée, tout comme vous en avez besoin. De plus, vous n’avez pas l’inconvénient inévitable des macros: elles peuvent être désactivées par un utilisateur lors de l’ouverture du classeur.
_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 (11972) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.
Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
link: / excelribbon-Forcing_a_Worksheet_to_be_Protected_Again [Forcer une feuille de travail à être à nouveau protégée]
.