Protéger la structure d’un classeur Excel avec un mot de passe, Excel VBA
Voici un exemple de code détaillé en VBA pour protéger la structure d’un classeur Excel avec un mot de passe, accompagné d’une explication.
Objectif :
Nous voulons créer un code VBA qui protège la structure d’un classeur Excel. Cela signifie que l’utilisateur ne pourra pas ajouter, supprimer ou déplacer des feuilles de calcul dans le classeur sans fournir le mot de passe correct.
Code VBA pour protéger la structure du classeur avec un mot de passe :
Sub ProtegerStructureClasseur() ' Déclarer la variable du mot de passe Dim motDePasse As String ' Définir le mot de passe pour la protection de la structure du classeur motDePasse = "VotreMotDePasseIci" ' Remplacez par votre mot de passe souhaité ' Protéger la structure du classeur avec le mot de passe ThisWorkbook.Protect Structure:=True, Windows:=False, Password:=motDePasse ' Alerter l'utilisateur que la structure du classeur est protégée MsgBox "La structure du classeur est maintenant protégée avec un mot de passe.", vbInformation End Sub
Explication :
1. Déclaration des variables :
Dim motDePasse As String
Cette ligne déclare une variable appelée motDePasse qui servira à stocker le mot de passe de protection de la structure du classeur.
2. Définition du mot de passe :
motDePasse = "VotreMotDePasseIci"
Ici, nous assignons le mot de passe souhaité pour protéger la structure du classeur. Vous pouvez remplacer « VotreMotDePasseIci » par le mot de passe de votre choix. Assurez-vous de le conserver en lieu sûr.
3. Protection de la structure du classeur :
ThisWorkbook.Protect Structure:=True, Windows:=False, Password:=motDePasse
ThisWorkbook
: Il fait référence au classeur dans lequel le code est exécuté. Vous pouvez utiliser ActiveWorkbook si vous voulez faire référence au classeur actuellement actif.Structure:=True
: Cela garantit que la structure du classeur est protégée, ce qui signifie que l’utilisateur ne pourra pas ajouter, supprimer ni réorganiser les feuilles de calcul.Windows:=False
: Cette option empêche l’utilisateur de redimensionner ou déplacer la fenêtre du classeur. Ce n’est pas directement lié à la protection de la structure, mais peut être défini sur False si vous ne souhaitez pas autoriser le déplacement de la fenêtre.Password:=motDePasse
: Le mot de passe que nous avons défini plus tôt est utilisé pour protéger la structure du classeur. Sans ce mot de passe, l’utilisateur ne pourra pas retirer la protection ou modifier la structure.
4. Message de notification :
MsgBox "La structure du classeur est maintenant protégée avec un mot de passe.", vbInformation
Après avoir appliqué la protection, une boîte de message apparaît pour informer l’utilisateur que la structure est protégée. Ce message peut être supprimé ou personnalisé à votre convenance.
Comment exécuter le code :
1. Ouvrez le classeur Excel dans lequel vous souhaitez protéger la structure.
2. Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
3. Dans l’éditeur VBA, insérez un nouveau module :
- Cliquez sur Insertion dans la barre de menu.
- Sélectionnez Module.
4. Copiez et collez le code VBA ci-dessus dans le module.
5. Fermez l’éditeur VBA.
6. Appuyez sur Alt + F8, sélectionnez ProtegerStructureClasseur, puis cliquez sur Exécuter.
Notes importantes :
-
- Désactivation de la protection du classeur : Si vous devez désactiver la protection de la structure plus tard, vous pouvez utiliser le code suivant :
Sub DesprotegerStructureClasseur() ThisWorkbook.Unprotect Password:="VotreMotDePasseIci" ' Remplacez par votre mot de passe MsgBox "La structure du classeur est maintenant désactivée.", vbInformation End Sub
Ce code désactive la protection de la structure, permettant à l’utilisateur de la modifier à nouveau.
- Gestion des mots de passe : Il est essentiel de conserver le mot de passe en toute sécurité. Si vous oubliez le mot de passe, vous ne pourrez pas désactiver la protection de la structure sans utiliser des outils tiers ou des méthodes de récupération de mot de passe, qui peuvent être compliquées et longues.
- Limites :
- Cette protection ne verrouille que la structure du classeur. Les contenus des feuilles ne sont pas protégés par ce code. Si vous souhaitez protéger les contenus des feuilles également, vous pouvez utiliser la méthode Sheet.Protect en plus.
- La protection par mot de passe dans VBA n’est pas inviolable. Il existe des méthodes pour contourner ou craquer le mot de passe. Il est donc conseillé d’utiliser cette protection en complément d’autres mesures de sécurité.
Conclusion :
Ce code VBA permet de protéger la structure d’un classeur Excel, garantissant que les utilisateurs ne pourront pas modifier l’agencement des feuilles sans le mot de passe approprié. Vous pouvez facilement personnaliser ce code pour l’adapter à vos besoins et renforcer la sécurité de votre classeur en combinant cette protection avec d’autres techniques comme la protection des feuilles.