Protection des classeurs VBA (protéger/déprotéger par mot de passe)

Excel vous permet de protéger vos classeurs Excel contre les modifications. Ce didacticiel vous montrera comment protéger ou déprotéger la structure d'un classeur à l'aide de VBA.

Protection des classeurs VBA

VBA Workbook Protection vous permet de verrouiller la structure du classeur. Lorsqu'un classeur est protégé, les utilisateurs ne pourront pas ajouter, supprimer, masquer/afficher ou protéger/déprotéger des feuilles de calcul. Si vous créez un modèle, vous souhaiterez probablement activer la protection du classeur pour empêcher les utilisateurs (ou vous !) de supprimer accidentellement des feuilles de calcul.

Déprotéger le classeur VBA

Pour déprotéger un classeur, utilisez simplement la ligne de code suivante :

1 Classeurs("Livre1").Déprotéger

Remarque : ce code ne fonctionnera que si le classeur était protégé sans pour autant Un mot de passe. S'il était protégé par un mot de passe, vous devez également saisir le mot de passe pour le déprotéger :

Déprotéger le classeur avec mot de passe

Cette ligne de code déprotégera un classeur qui a été protégé par un mot de passe :

1 Classeurs("Book1").Unprotect Password:="password"

ou vous pouvez omettre le mot de passe :=

1 Classeurs("Livre1").Déprotéger le "mot de passe"

Déprotéger ce classeur

Ce code déprotégera ThisWorkbook (ThisWorkbook est le classeur dans lequel le code en cours d'exécution est stocké. Il ne changera jamais).

1 Ce classeur.Déprotéger

ou déprotéger ThisWorkbook avec un mot de passe :

1 ThisWorkbook.Unprotect "mot de passe"

UnProtect ActiveWorkbook

Ce code déprotégera l'ActiveWorbook.

1 ActiveWorkbook.Déprotéger

ou déprotéger l'ActiveWorkbook avec un mot de passe :

1 ActiveWorkbook.Déprotéger le "mot de passe"

Déprotéger tous les classeurs ouverts

Ce code déprotégera tous les classeurs ouverts :

12345678 Sous UnprotectAllOpenWorkbooks()Dim wb comme classeurPour chaque wb dans les classeurswb.DéprotégerWb suivantFin du sous-marin

UnProtect Workbook - Sans connaître le mot de passe

Si vous devez déprotéger un classeur sans connaître le mot de passe, il existe plusieurs compléments pour vous aider. Je recommanderais Ribbon Commander.

Déprotéger toutes les feuilles du classeur

Après avoir déprotégé un classeur, vous souhaiterez peut-être également déprotéger toutes les feuilles du classeur. Voici une procédure qui déprotégera toutes les feuilles :

12345678 Sous UnProtectWorkbookAndAllSheets()Dim ws As Feuille de calculActiveWorkbook.DéprotégerPour chaque ws dans les feuilles de calculws.DéprotégerProchainFin du sous-marin

Protéger le classeur

Vous pouvez protéger les structures de classeur de la même manière que vous déprotégez.

Protéger le classeur sans mot de passe

Cette ligne de code protégera un classeur (pas de mot de passe)

1 Classeurs("Livre1").Protéger

Remarque : j'appliquerai souvent la protection des classeurs sans mot de passe, simplement pour empêcher accidentel modifications apportées aux classeurs.

Protéger le classeur avec un mot de passe

Ce code protégera la structure du classeur (avec un mot de passe)

1 Classeurs("Livre1").Protéger le "mot de passe"

ou:

1 Classeurs("Book1").Protect Password:="password"

Fichier Excel protégé par mot de passe

Au lieu de la protection du classeur, vous souhaiterez peut-être protéger par mot de passe un fichier Excel entier. Pour ce faire en utilisant VBA, enregistrez sous le classeur avec un mot de passe :

1 Classeurs("Livre1").Enregistrer sous "mot de passe"

Exemples de classeur Protéger / Déprotéger

Afficher toutes les feuilles de calcul dans le classeur protégé

Cette procédure déprotégera un classeur, masquera toutes les feuilles de calcul et reprotégera le classeur

12345678910 Sub UnprotectWB_Unhide_All_Sheets()Dim ws As Feuille de calculActiveWorkbook.DéprotégerPour chaque ws dans les feuilles de calculws.Visible = xlFeuilleVisibleProchainActiveWorkbook.ProtectFin du sous-marin

Protéger le classeur et toutes les feuilles

Cette procédure protégera toutes les feuilles de calcul d'un classeur, puis protégera le classeur :

1234567891011 Sous ProtectWB_Protect_All_Sheets()Dim ws As Feuille de calculActiveWorkbook.DéprotégerPour chaque ws dans les feuilles de calculws.ProtectProchainActiveWorkbook.ProtectFin du sous-marin

Vous pouvez également ajouter une protection par mot de passe :

1234567891011 Sous-ProtectWB_Protect_All_Sheets_Pswrd()Dim ws As Feuille de calculActiveWorkbook.Déprotéger le "mot de passe"Pour chaque ws dans les feuilles de calculws.Protect "mot de passe"ProchainActiveWorkbook.Protect "mot de passe"Fin du sous-marin
wave wave wave wave wave