J'ai utilisé la mauvaise syntaxe de la méthode de protection du classeur dans vba et maintenant je ne suis pas en mesure de le déprotéger manuellement ou par vba.

Méthode que j'ai utilisée

ActiveWorkbook.Protect Password = "a"

Au lieu de

ActiveWorkbook.Protect Password:= "a"

Je joins un exemple de classeur pour mieux expliquer le problème. https://www.dropbox.com/s/j9gbs653c3ekljq/ vbaprotect-unfotect.xlsm? dl = 0

Cordialement, Sushant

0
Sushant Gupta 21 avril 2020 à 14:15

2 réponses

Meilleure réponse

Ce que vous pouvez faire est de changer le type de fichier de ".xlsm" à ".zip". Ensuite, vous ouvrez le fichier zip et trouvez "xl / workbook.xml". Ouvrez le fichier, recherchez et supprimez la section workbookProtection du fichier xml. Cela ressemblerait à ceci.

<workbookProtection lockStructure="1" workbookSpinCount="100000" workbookSaltValue="toN4kCMV7rKY3ILzsrftPA==" workbookHashValue="3fup/MHNNDJdbhPyerFBJtGVu1ymCUX4Gq1vSRd6x7nUQey6orASofK+Fp/kaNjErr5VMZekaGG5m+Q9bpHPDg==" workbookAlgorithmName="SHA-512"/>

(Supprimez simplement tout de <à /> de la section)

Enregistrez le fichier workbook.xlm dans le dossier zip. Fermez le zip et remplacez le type de fichier par ".xlsm" et la protection de votre classeur a disparu.

J'espère que cela t'aides.

0
T. Nesset 21 avril 2020 à 11:35

Si vous avez utilisé

ActiveWorkbook.Protect Password = "a"

Pour protéger votre classeur, votre mot de passe est False car Password est une variable vide et donc ce n'est pas a donc Password = "a" serait évalué à False.

Donc

ActiveWorkbook.Unprotect Password:="False"

Devrait déprotéger votre classeur et utiliser la «mauvaise» syntaxe pour le déprotéger

ActiveWorkbook.Unprotect Password = "a"

Une alternative consiste à exécuter cette ligne de code en VBA dans votre classeur.

ThisWorkbook.Worksheets(1).Cells(1, 1).Value(11) = ThisWorkbook.Worksheets(1).Cells(1, 1).Value(11)

En raison d'un bogue dans Excel, la protection sera complètement supprimée sans avoir besoin de connaître le mot de passe.

0
Pᴇʜ 22 avril 2020 à 06:15