Pour toute sorte de raisons, il est souvent souhaitable de protéger par un mot de passe le code VBA qui accompagne votre Classeur Excel. Que ce soit pour prévenir des fausses manipulations ou d'empêcher l'utilisateur de modifier le code intentionnellement. De nos jours, un peu plus de sécurité ne peut pas faire de mal.
Pourquoi protéger son code VBA par un mot de passe?
Une des raisons pour une protection du code VBA est que si l'utilisateur a accès au code VBA et aux propriétés de votre Projet, il peut tout modifier. Il peut, entre autres, désactiver les protections que vous avez mis en place dans votre fichier, afficher les Feuilles cachées ou même injecter du code malicieux qui pourrait faire tort à d'autres utilisateurs.
Si, par exemple, votre code VBA contient un système de gestion des utilisateurs, celui qui a accès à votre code peut soit le modifier, soit le désactiver (il peut également modifier le contenu des événements tel que Workbook_Open
).
Une protection par un mot de passe n'est donc pas de trop… Même si, avouons-le, cette protection n'est pas 100% inviolable. Mais au moins, elle empêchera la grande majorité des utilisateurs de vouloir jouer aux apprentis hackeurs.
Si vous cherchez une solution fiable au maximum (même si ce ne sera jamais à 100%), vous devrez vous tourner vers des solutions plus robustes comme le .NET etc.
Commet ajouter un mot de passe au code VBA?
Ajouter un mot de passe est très simple. Dans le VBE ("Visual Basic Editor", donc dans l'éditeur VBA), vous effectuez la procédure suivante:
- Faites un clic droit sur le nom de votre Projet (dans la partie supérieure de la fenêtre qui se situe à gauche)
- Cliquez sur "Propriétés de NomDeVotreProjet"
- dans la fenêtre qui apparaît: vous cliquez sur l'onglet "Protection", vous cochez la case "Verrouiller le projet pour affichage", vous introduisez le mot de passe et vous confirmez en cliquant sur "OK"
Une fois le Classeur sauvegardé, il sera protégé par un mot de passe. Celui qui voudrait ensuite voir les propriétés du Projet ainsi que le code VBA aura droit à une fenêtre pop-up lui demandant d'introduire le mot de passe.
Attention : si vous perdez le mot de passe de votre projet, vous êtes mal. Comme je l'ai mentionné plus haut, une technique permet de passer outre. Cependant, le nombre des personnes qui la connaissent et qui peuvent s'en servir est relativement limité. Il vaut donc mieux de bien retenir (ou noter quelque part) votre mot de passe…
Changer ou supprimer le mot de passe du code VBA
Tout comme il est possible d'ajouter un mot de passe à votre Projet VBA, il est aussi possible de le changer ou le supprimer.
La procédure est exactement la même que pour l'ajouter – ce qui change c'est que pour pouvoir changer ou supprimer le mot de passe, vous devez d'abord le connaître pour pouvoir faire les modifications.
Donc avant d'effectuer les 3 étapes décrites plus haut, vous devrez d'abord déverrouiller le Projet VBA avec le mot de passe existant.
Sachez que pour supprimer le mot de passe, il suffit de le laisser les deux cases ("Mot de passe" et "Confirmer le mot de passe") vides, confirmer et sauvegarder.
Pour aller plus loin en VBA
Maintenant que vous savez protéger votre code, voici quelques autres articles qui pourraient vous être utiles…
- Liste de toutes les fonctions disponibles en VBA
- Importer et exporter le code VBA entre différents Classeurs/Projets
- Comment utiliser la fonction Excel RECHERCHEV directement en VBA
- Compresser et décompresser avec ZIP en VBA
- Envoyer un email avec VBA
- Comment calculer la SOMME en VBA
4 commentaires sur “Comment protéger le code VBA par un mot de passe”
Bonjour, jai suivi la procedure mais le VBA ne parvient pas à activer et un message d'erreur est affiché à l'entete de tous mes classeurs excels (echec d'activation du produit)
Bonjour Idris,
je dois avouer que je ne comprends pas tout à fait votre question. Que voulez-vous dire par "VBA ne parvient pas à activer"?
Pouvez-vous être plus spécifique? "L'échec d'activation du produit" – vous savez de quel produit? De Excel? Du VBA?
Cordialement,
Martin
Bonjour, c'est à dire mon vraie problème est que si j'essaie de faire la protection pratique ça me demande un mot de passe mais je ne sais pas ou se trouve le mot de passe en réalité.
Et si je fais rentrer un mot passe quelconque ça me dit mot de passe incorrect
merci, c'est parfait