Protéger la macro dans VBA

Iqra Hasnain 15 février 2024
  1. Protéger la macro de l’affichage dans VBA
  2. Protéger la macro de l’exécution dans VBA
Protéger la macro dans VBA

Nous présenterons comment empêcher la visualisation et l’exécution d’une macro dans VBA. Nous présenterons également différentes étapes pour définir un mot de passe pour notre macro.

Protéger la macro de l’affichage dans VBA

La protection de nos données est très importante ; nous ne savons jamais comment quelqu’un va l’utiliser. Comme nous pouvons protéger les classeurs et les feuilles de calcul en leur attribuant simplement un mot de passe, nous pouvons également empêcher la visualisation d’une macro dans Excel.

Tout d’abord, nous allons ajouter un bouton de commande sur la feuille de calcul souhaitée.

Ajouter un bouton de commande dans la feuille de calcul

Ensuite, nous allons créer une macro simple que nous voulons protéger de la visualisation. Comme indiqué ci-dessous, nous allons créer une macro simple qui attribuera une valeur à une cellule à l’intérieur de la feuille.

Private Sub CommandButton1_Click()
Range("D1").Value = "This is a protected cell"
End Sub

Production:

créer une macro à protéger en VBA

Nous allons maintenant sélectionner Tools dans la barre de menus de VBA. Une liste apparaîtra, puis sélectionnez VBAProject Properties.

Lorsque les propriétés du projet VBA s’ouvriront, nous verrons les onglets Général et Protection.

protéger la macro dans VBA étape 1

Il faut sélectionner l’onglet Protection et cocher la case Lock project for viewing.

Nous devons entrer le mot de passe deux fois pour le confirmer. Et puis, nous devons sélectionner OK, comme indiqué ci-dessous.

protéger la macro dans VBA étape 2

Enregistrez les modifications et fermez le fichier Excel, puis rouvrez-le. Une boîte de dialogue apparaîtra lorsque nous essaierons de voir le code dans VBA.

Pour voir un fichier dans VBA, nous devons entrer le mot de passe correct.

boîte pour mot de passe

Nous pouvons toujours exécuter le code en cliquant sur le bouton de commande, mais nous ne pouvons plus afficher ou modifier le code à moins de saisir le mot de passe correct.

Protéger la macro de l’exécution dans VBA

Il existe des situations dans lesquelles nous souhaitons uniquement empêcher l’exécution d’une macro dans VBA. Nous pouvons utiliser Application.InputBox comme outil de protection par mot de passe dans ce cas.

Lorsqu’un utilisateur entre le mot correct dans la case, il exécute le code. Sinon, il affichera un message incorrect et arrêtera l’exécution du code.

Passons en revue un exemple dans lequel nous allons essayer de mettre une valeur à une certaine cellule dans Excel en utilisant VBA. Comme indiqué ci-dessous, nous utiliserons la méthode ci-dessus pour empêcher l’exécution du code VBA.

Sub Pass()
Dim password As Variant
passcode = Application.InputBox("Enter Pass Code", "Password Protected")

Select Case passcode
    Case Is = False
    Case Is = "password"
        Range("B1").Value = "Code executed!"
    Case Else
        MsgBox "Incorrect Pass Code"
End Select
End Sub

Production:

protection contre l’exécution dans VBA

De cette façon, nous pouvons facilement protéger notre macro de l’affichage et de l’exécution à l’aide de VBA.