Comment protéger un fichier VBA avec un mot de passe

Bloqué sur Excel?
Obtenez rapidement une réponse personnalisée en posant votre problème sur le forum: forum.formuleexcel.com
C'est gratuit!

Il est possible de protéger les macros par un mot de passe afin d’empêcher leur modification ou leur exécution. Je vous montre comment faire dans cet article.

Protéger l’édition des macros par un mot de passe

Pour empêcher l’édition des macros, allez dans l’éditeur de macros et faites un clic-droit sur l’un des éléments du projet VBA,puis choisissez Propriétés de VBAProject

propriétés du projet VBA

Dans le menu propriétés qui s’ouvre ensuite, allez dans la partie Protection, cochez la case Verrouiller et entrez deux fois votre mot de passe.

choisir un mot de passe pour protéger du code VBA

Sauvez ensuite votre fichier puis réouvrez-le et essayer de modifier le code dans l’éditeur VBA: une fenêtre s’ouvre pour vous demander le mot de passe. Vous ne pouvez plus modifier le code VBA sans ce mot de passe.

mot de passe en VBA

Vous pouvez cependant exécuter les macros sans problème comme d’habitude

Empêcher l’exécution de macros VBA avec un mot de passe

Il est possible d’empêcher l’exécution du code en ajoutant un mot de passe dans la macro. Attention, l’édition doit également être protégée sinon n’importe qui peut lire le mot de passe en dur dans le code de la macro!

Pour cela nous allons ajouter une boite de dialogue qui demande le mot de passe et exécute le reste la la macro si il est correct, et renvoie un message d’erreur sinon.

Copiez le code suivant pour ajouter une protection par mot de passe (le mot de passe est « votremotdepasse »)

Sub macro_protegee()
Dim reponse As Variant
reponse = Application.InputBox("Entrez le mot de passe pour continuer", "Macro protégée")
Select Case reponse
   Case Is = False
      'Si on appuie sur annuler: on ne fait rien
   Case Is = "votremotdepasse" 
      'Rentrez votre code ici
      MsgBox ("Exécution du code!")
   Case Else 
      'mauvais mot de passe 
      MsgBox "Le mot de passe est incorrect" 
End Select 
End Sub

Lorsque la macro est exécutée, une boite de dialogue apparait vous demandant de rentrer le mot de passe pour continuer.

boite e dialogue demandant le mot de passe