VBA – Protection des Classeurs (Protection / Ôter la Protection par Mot de Passe)
In this Article
- Protection des Classeurs VBA
- Enlever la Protection du classeur VBA
- Enlever la Protection d’un Classeur avec un Mot de Passe
- Enlever la Protection de l’objet « ThisWorkbook »
- Enlever la Protection de l’objet « ActiveWorkbook »
- Enlever la Protection sur Tous les Classeurs Ouverts
- Enlever la Protection d’un Classeur – Mot de Passe Perdu
- Ôter la Protection de Toutes les Feuilles d’un Classeur
- Protéger le Classeur
- Exemples de Protection/Déprotection de Classeurs
Excel vous offre la possibilité de protéger vos classeurs Excel contre les modifications. Ce tutoriel vous montrera comment protéger ou déprotéger la structure d’un classeur à l’aide de VBA.
Protection des Classeurs VBA
La protection des classeurs VBA vous permet de verrouiller la structure du classeur. Lorsqu’un classeur est protégé, les utilisateurs ne peuvent pas ajouter, supprimer, masquer/démasquer ou protéger/déprotéger les feuilles de calcul. Si vous construisez un modèle, vous souhaitez probablement activer la protection des classeurs pour éviter que les utilisateurs (ou vous-même!) ne suppriment accidentellement des feuilles de calcul.
Enlever la Protection du classeur VBA
Pour enlever la protection d’un classeur, il suffit d’utiliser la ligne de code suivante :
Workbooks("Classeur1").Unprotect
Remarque : ce code ne fonctionne que si le classeur a été protégé sans mot de passe. S’il a été protégé par un mot de passe, vous devez également entrer le mot de passe pour ôter la protection:
Enlever la Protection d’un Classeur avec un Mot de Passe
Cette ligne de code va déprotéger un classeur qui a été protégé par un mot de passe :
Workbooks("Classeur1").Unprotect Password:="Mot de Passe"
ou vous pouvez omettre Password:=
Classeurs("Classeur1").Unprotect "mot de passe"
Enlever la Protection de l’objet « ThisWorkbook »
Ce code va enlever la protection de ThisWorkbook (ThisWorkbook est le classeur où le code en cours d’exécution est stocké. Il ne sera jamais modifié).
ThisWorkbook.Unprotect
ou, dans le cas d’une protection avec un mot de passe :
ThisWorkbook.Unprotect "Mot de Passe"
Enlever la Protection de l’objet « ActiveWorkbook »
Ce code va enlever la protection du classeur actif :
ActiveWorkbook.Unprotect
ou, dans le cas d’une protection avec un mot de passe :
ActiveWorkbook.Unprotect "Mot de Passe"
Enlever la Protection sur Tous les Classeurs Ouverts
Ce code va enlever la protection sur tous les classeurs ouverts :
Sub EnleverProtectionTousLesClasseurs()
Dim cl As Workbook
For Each cl In Workbooks
cl.Unprotect
Next cl
End Sub
Enlever la Protection d’un Classeur – Mot de Passe Perdu
Si vous avez besoin d’enlever la protection d’un classeur sans connaître le mot de passe, il existe plusieurs modules complémentaires pour vous aider. Je recommande Ribbon Commander.
Ôter la Protection de Toutes les Feuilles d’un Classeur
Après avoir enlevé la protection d’un classeur, vous pouvez aussi vouloir déprotéger toutes les feuilles du classeur. Voici une procédure qui permet de le faire :
Sub EnleverProtectionClasseurEtToutesLesFeuilles()
Dim fc As Worksheet
ActiveWorkbook.Unprotect
For Each fc In Worksheets
fc.Unprotect
Next
End Sub
Protéger le Classeur
Vous pouvez protéger les structures des classeurs de la même manière que vous les déverrouillez.
Protéger le Classeur Sans Mot de Passe
La ligne de code suivante protège un classeur (sans mot de passe)
Workbooks("Classeur1").Protect
Note : J’applique souvent la protection des classeurs sans mot de passe, simplement pour éviter les modifications accidentelles des classeurs.
Protéger le Classeur Avec un Mot de Passe
Ce code protégera la structure du classeur (avec un mot de passe)
Workbooks("Classeur1").Protect "Mot de Passe"
ou
Workbooks("Classeur1").Protect Password:="Mot de Passe"
Protection par Mot de Passe d’un Fichier Excel
Au lieu de protéger un classeur, vous pouvez protéger par mot de passe un fichier Excel entier. Pour ce faire, en utilisant VBA, enregistrez le classeur avec un mot de passe :
Workbooks("Classeur1").SaveAs "Mot de Passe"
Exemples de Protection/Déprotection de Classeurs
Déverrouillage de Toutes les Feuilles de Calcul du Classeur Protégé
Cette procédure permet d’enlever la protection d’un classeur, de masquer toutes les feuilles de calcul et de protéger à nouveau le classeur
Sub EnleverProtectionClasseur_AfficherToutesLesFeuilles()
Dim fc As Worksheet
ActiveWorkbook.Unprotect
For Each fc In Worksheets
fc.Visible = xlSheetVisible
Next fc
ActiveWorkbook.Protect
End Sub
Protéger le Classeur et Toutes les Feuilles de Calcul
Cette procédure permet de protéger toutes les feuilles de calcul d’un classeur, puis de protéger le classeur :
Sub ProtégerClasseur_ProtégerToutesLesFeuilles()
Dim fc As Worksheet
ActiveWorkbook.Unprotect
For Each fc In Worksheets
fc.Protect
Next fc
ActiveWorkbook.Protect
End Sub
Vous pouvez également ajouter une protection par mot de passe :
Sub ProtégerClasseur_ProtégerToutesLesFeuilles_MotDePasse()
Dim fc As Worksheet
ActiveWorkbook.Unprotect "Mot de Passe"
For Each fc In Worksheets
fc.Protect "Mot de Passe"
Next
ActiveWorkbook.Protect "Mot de Passe"
End Sub