Feuille VBA UnProtect

Feuille de déprotection Excel VBA

Il existe des situations où nous protégeons nos feuilles de calcul pour l'empêcher de l'utilisateur de manipuler les feuilles de calcul. Tout en protégeant la feuille de calcul, nous conservons généralement le même mot de passe. Dans cet article, nous allons vous montrer comment déprotéger la feuille à l'aide du codage VBA.

Exemples

Vous pouvez télécharger ce modèle Excel de feuille de déprotection VBA ici - Modèle Excel de feuille de déprotection VBA

Exemple 1

Déprotéger la feuille est 99% plus simple que de la protéger, nous avons juste besoin du mot de passe pour déprotéger la feuille de calcul.

La toute première chose à faire est de mentionner le nom de la feuille de calcul que nous allons déprotéger. Par exemple, si vous cherchez à déprotéger la feuille nommée «Données de vente», votre code VBA devrait ressembler à ceci.

Feuilles de travail («Données de vente»)

Accédez ensuite à la méthode Unprotect.

Comme nous pouvons le voir dans l'image ci-dessus, nous ne voyons aucun type de liste IntelliSense pour nous aider. Cela rend le travail plus difficile, en particulier pour le nouvel apprenant.

Pour surmonter cela, je me fie généralement à la déclaration d'une variable VBA comme «Feuille de travail».

Code:

 Sub Unpretect_Example1 () Dim Ws As Worksheet End Sub 

Maintenant, définissez la variable déclarée sur la feuille respective.

Code:

 Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") End Sub 

Utilisez maintenant une variable pour accéder à toutes les propriétés et méthodes de la variable déclarée.

Comme vous pouvez le voir dans l'image ci-dessus, nous pouvons accéder à toutes les propriétés et méthodes. Sélectionnez la méthode «Unprotect» dans la liste IntelliSense.

Il demande le mot de passe pour déprotéger la feuille. J'ai défini le mot de passe comme «Excel @ 1234», je vais donc fournir le mot de passe de la même manière.

Cela déprotégera la feuille de calcul nommée «Données de vente».

Code:

 Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") Ws.Unprotect Password: = "Excel @ 1234" End Sub 

S'il n'y a pas de mot de passe, il suffit d'utiliser la méthode «Unprotect» et d'ignorer le paramètre «Password».

Code:

 Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") 'Modifiez le nom de la feuille de calcul selon vos besoins Ws.Unprotect' S'il n'y a pas de mot de passe, passez simplement la méthode "UnProtect" End Sub 

S'il y a un mot de passe, nous devons entrer le mot de passe entre guillemets. Le mot de passe est sensible à la casse.

Exemple # 2 - Déprotéger toutes les feuilles Excel en un seul clic

Nous avons vu comment déprotéger la feuille de calcul particulière. Imaginez que vous ayez plusieurs feuilles de calcul et que toutes les feuilles de calcul soient protégées par le même mot de passe, alors nous ne pouvons pas continuer à écrire des codes pour chaque feuille de calcul séparément.

Dans ces cas, nous devons utiliser des boucles pour parcourir la collection d'objets de feuille de calcul et les déprotéger facilement.

Le code ci-dessous parcourra toutes les feuilles de calcul et déprotégera la feuille.

Code:

Sub Unpretect_Example2 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Unprotect Password: = "Excel @ 1234" 'Modifiez le mot de passe comme vous l'avez mentionné tout en les protégeant. Suivant Ws End Sub

Exemple # 3 - Situations spéciales

Situation 1: J'ai déjà imaginé quand le mot de passe fourni est incorrect. Lorsque le mot de passe fourni est incorrect, nous obtiendrons 1004: Erreur d'exécution.

Pour gérer ces erreurs, nous pouvons utiliser l'option «On Error GoTo Label». Ci-dessous le code est l'exemple de la même chose.

Code:

Sub Unpretect_Example3 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets On Error GoTo Errormessage Ws.Unprotect Password: = "Excel @ 1234" 'Modifiez le mot de passe comme vous l'avez mentionné tout en les protégeant. Message d'erreur: MsgBox "Mot de passe incorrect" Suivant Ws End Sub

Le code ci-dessus affichera une jolie boîte de message indiquant «Mauvais mot de passe».

Situation 2: Lorsque la feuille est protégée sans mot de passe et si vous fournissez un mot de passe aléatoire, elle déprotégera toujours la feuille de calcul sans montrer aucun type d'erreur.

Situation 3: Lorsque la feuille est protégée par un mot de passe, mais si vous ne fournissez aucun mot de passe, VBA apparaîtra comme une boîte de saisie de mot de passe pour entrer le mot de passe.

Dans la zone de saisie ci-dessus, nous devons entrer notre mot de passe pour déprotéger la feuille de calcul. Si vous cliquez sur le bouton Annuler, cela quittera la sous-procédure VBA sans rien afficher sauf s'il y a une boîte de message utilisateur.