Protéger une feuille de calcul avec un mot de passe, Excel VBA

Protéger une feuille de calcul avec un mot de passe, Excel VBA

Voici une explication détaillée sur la façon de protéger une feuille de calcul avec un mot de passe en utilisant Excel VBA, suivie du code VBA correspondant.
Comment protéger une feuille de calcul avec un mot de passe en VBA
Dans Excel, vous pouvez appliquer un mot de passe pour protéger une feuille de calcul contre les modifications non autorisées, mais cette protection peut être effectuée de manière programmatique à l’aide de VBA, ce qui vous permet d’automatiser le processus. Cela vous permet également de protéger la feuille tout en laissant certaines cellules modifiables.
Voyons cela étape par étape.
Étapes à suivre :
1. Déverrouiller les cellules spécifiques avant de protéger la feuille
Avant de protéger la feuille entière, il est important de spécifier quelles cellules resteront déverrouillées. Cela est nécessaire car, par défaut, toutes les cellules dans Excel sont verrouillées lorsque la feuille est protégée.

2. Appliquer la protection de la feuille
Nous utiliserons ensuite la méthode Protect de l’objet Worksheet pour appliquer la protection sur la feuille, en définissant un mot de passe.

3. Définir le mot de passe de protection
Le mot de passe sera défini lors de l’application de la protection.

4. Optionnel : Autoriser certaines actions comme le formatage, le tri ou la modification des objets tout en protégeant la feuille.
Code VBA détaillé
Voici le code VBA que vous pouvez utiliser pour protéger une feuille de calcul avec un mot de passe :

Sub ProtegerFeuilleAvecMotDePasse()
    ' Définir une variable pour stocker le mot de passe
    Dim ws As Worksheet
    Dim motDePasse As String
    ' Définir le mot de passe pour la protection
    motDePasse = "votreMotDePasseIci"  ' Remplacez par votre mot de passe souhaité
    ' Définir la feuille à protéger
    Set ws = ThisWorkbook.Sheets("Feuille1") ' Remplacez "Feuille1" par le nom réel de la feuille
    ' Déverrouiller toutes les cellules avant la protection
    ws.Cells.Locked = False
    ' Déverrouiller des cellules spécifiques si nécessaire (optionnel)
    ' Exemple : Déverrouiller la plage A1:B10
    ws.Range("A1:B10").Locked = False
    ' Appliquer la protection avec un mot de passe
    ws.Protect Password:=motDePasse, UserInterfaceOnly:=True
    ' Afficher une boîte de message pour indiquer que la protection a été appliquée
    MsgBox "La feuille a été protégée avec succès avec un mot de passe.", vbInformation
End Sub

Explication du code :
1. Déclaration des variables :

  • Dim ws As Worksheet : Cette variable sert à faire référence à la feuille que nous voulons protéger.
  • Dim motDePasse As String : Une variable de type chaîne de caractères utilisée pour stocker le mot de passe.

2. Définition du mot de passe :

  • motDePasse = "votreMotDePasseIci" : Remplacez « votreMotDePasseIci » par le mot de passe que vous souhaitez utiliser. Ce sera le mot de passe requis pour déprotéger la feuille plus tard.

3. Sélection de la feuille de calcul :

  • Set ws = ThisWorkbook.Sheets("Feuille1") : Cette ligne assigne la feuille nommée « Feuille1 » à la variable ws. Remplacez « Feuille1 » par le nom de la feuille que vous souhaitez protéger. Il est important que le nom corresponde exactement à celui de la feuille dans votre classeur.

4. Déverrouillage de toutes les cellules :

  • ws.Cells.Locked = False : Par défaut, toutes les cellules dans Excel sont verrouillées, mais cela ne prend effet que lorsque la feuille est protégée. Nous déverrouillons d’abord toutes les cellules pour pouvoir ensuite spécifier celles qui doivent rester déverrouillées.

5. Déverrouillage de cellules spécifiques (optionnel) :

  • ws.Range("A1:B10").Locked = False : Si vous souhaitez laisser certaines cellules déverrouillées pour modification pendant que le reste de la feuille est protégé, vous pouvez les spécifier avec la méthode .Range(). Dans cet exemple, les cellules A1 à B10 sont déverrouillées. Vous pouvez modifier cette plage selon vos besoins.

6. Application de la protection :

  • ws.Protect Password:=motDePasse, UserInterfaceOnly:=True : Cette commande applique la protection sur la feuille. Le paramètre Password:=motDePasse assure que la feuille est protégée avec le mot de passe. L’option UserInterfaceOnly:=True permet à VBA de modifier la feuille même si elle est protégée, ce qui peut être utile si vous voulez que votre code continue à s’exécuter sans avoir à saisir le mot de passe.

7. Message de confirmation :

  • MsgBox "La feuille a été protégée avec succès avec un mot de passe." : Ce message de confirmation s’affiche une fois que la protection a été appliquée.

Comment utiliser le code :

Ouvrez le classeur Excel.
Appuyez sur ALT + F11 pour ouvrir l'éditeur VBA.
Insérez un nouveau module en faisant un clic droit sur un module existant dans l'éditeur, puis sélectionnez Insérer > Module.
Copiez et collez le code VBA dans ce module.
Modifiez le nom de la feuille et le mot de passe selon vos besoins.
Appuyez sur F5 ou exécutez la macro pour protéger la feuille.

Déprotéger la feuille
Si vous devez déprotéger la feuille plus tard, vous pouvez utiliser le code suivant :

Sub DeprotegerFeuille()
    Dim ws As Worksheet
    Dim motDePasse As String
    ' Définir le mot de passe utilisé pour la protection
    motDePasse = "votreMotDePasseIci"  ' Remplacez par votre mot de passe
    ' Définir la feuille à déprotéger
    Set ws = ThisWorkbook.Sheets("Feuille1")  ' Remplacez par le nom de votre feuille
    ' Déprotéger la feuille
    ws.Unprotect Password:=motDePasse
    ' Optionnel : Afficher un message de confirmation
    MsgBox "La feuille a été déprotégée avec succès.", vbInformation
End Sub

Points importants à considérer :

  • Sécurité du mot de passe : Le mot de passe est stocké dans le code VBA, il est donc recommandé de protéger ou de chiffrer ce code si le mot de passe est sensible. Il faut également éviter de laisser le mot de passe en texte brut dans le code.
  • Limitations de la protection Excel : La fonctionnalité de protection de feuille dans Excel n’est pas conçue pour être hautement sécurisée. Elle sert principalement de moyen de dissuasion pour les utilisateurs occasionnels. Un utilisateur déterminé peut contourner cette protection s’il sait comment utiliser certains outils ou techniques.

Options avancées pour la protection de la feuille :
Vous pouvez également spécifier des options supplémentaires lors de l’application de la protection, telles que :

  • Permettre aux utilisateurs de trier, de formater des cellules ou de modifier des objets tout en protégeant la feuille.

Voici un exemple permettant certaines de ces options :
ws.Protect Password:=motDePasse, UserInterfaceOnly:=True, AllowSorting:=True, AllowFormattingCells:=True
Cela permet aux utilisateurs de trier des données et de formater des cellules tout en protégeant la feuille.
Conclusion :
Ce script VBA vous permet de protéger une feuille Excel avec un mot de passe, vous donnant un contrôle précis sur les cellules qui peuvent être modifiées. En ajustant les paramètres, vous pouvez personnaliser cette protection en fonction de vos besoins spécifiques.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x