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.
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:
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
.
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.
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.
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:
De cette façon, nous pouvons facilement protéger notre macro de l’affichage et de l’exécution à l’aide de VBA.