Comment puis-je supprimer par programme un mot de passe (connu) d'un projet VBA Excel? Pour être clair: Je veux supprimer le mot de passe du projet VBA, pas le classeur ou les feuilles de travail.Comment supprimer le mot de passe d'un projet VBA?
Répondre
Ceci a une méthode simple utilisant SendKeys pour déprotéger le projet VBA. Cela vous entrer dans le projet, de sorte que vous auriez à continuer d'utiliser SendKeys pour trouver un moyen de supprimer la protection par mot de passe: http://www.pcreview.co.uk/forums/thread-989191.php
Et voici celui qui utilise une méthode plus avancée, un peu plus fiable pour déprotéger . Encore une fois, il ne débloquera que le projet VB pour vous. http://www.ozgrid.com/forum/showthread.php?t=13006&page=2
Je ne l'ai pas essayé ou l'autre méthode, mais cela peut vous faire économiser un peu de temps si c'est ce que vous devez faire ...
J'ai le code. Que faire avec? Je ne peux pas ouvrir VBEditor, ni exécuter quelque chose, parce que le projet est verrouillé, donc, tout nouveau script n'est pas possible d'exécuter !? – serhio
+ 1 :) @serhio: Une autre façon d'utiliser [APIS] (http://stackoverflow.com/questions/16174469/unprotect-vbproject-from-vb-code/16176557#16176557) –
[La réponse d'Uygar Y ci-dessous] (https : //stackoverflow.com/a/7835861/3358272) est toujours une réponse pertinente qui fonctionne avec Office 2016. Le fait que cela fonctionne complètement et facilement sape toute attente que vous pourriez avoir à propos de l'utilisation de mots de passe Office pour la sécurisation des documents. Je n'ai jamais eu beaucoup de confiance en eux, en supposant qu'ils pourraient être désactivés avec des heures de travail sur ordinateur, mais sa réponse a travaillé pour moi avec deux * minutes * de travail. Les mots de passe gardent l'honnête et non-ordinateur-savvy, mais c'est surtout l'huile de serpent, à mon humble avis. – r2evans
J'ai trouvé ce here qui décrit comment définir le mot de passe du projet VBA. Vous devriez être capable de le modifier pour annuler le mot de passe du projet VBA.
Celui-ci n'utilise pas SendKeys. Faites-moi savoir si cela aide! JFV
Une autre façon de supprimer le mot de passe de projet VBA est;
- Ouvrir le fichier xls avec un éditeur hexadécimal. (ie. Hex Modifier http://www.hexedit.com/)
- Rechercher DPB
- Remplacer DPB DPX
- fichier Enregistrer.
- Ouvrir le fichier dans Excel.
- Cliquez sur "Oui" si vous obtenez une boîte de message.
- Définir un nouveau mot de passe à partir des propriétés du projet VBA.
- Fermez et ouvrez à nouveau le fichier, puis tapez votre nouveau mot de passe pour déprotéger.
MISE À JOUR: Pour Excel 2010 (Works for MS Office Pro Plus 2010 [14.0.6023.1000 64bit]),
- Ouvrez le fichier XLSX avec 7zip
Si classeur est protégé:
- Parcourir le dossier
xl
- Si le classeur est protégé, clic droit
workbook.xml
et sélectionnez Modifier - Trouvez la partie
<workbookProtection workbookPassword="XXXX" lockStructure="1"/>
(XXXX
est votre mot de passe crypté) - Retirez
XXXX
partie. (par exemple<workbookProtection workbookPassword="" lockStructure="1"/>
) - Enregistrez le fichier.
- Lorsque 7zip vous demande de mettre à jour l'archive, dites Oui.
- Fermez 7zip et rouvrez votre XLSX.
- Cliquez sur Protéger le classeur sur Revoir l'onglet.
- Facultatif: enregistrez votre fichier.
Si des feuilles de travail sont protégés:
- Parcourir le dossier
xl/worksheets/
. - Cliquez avec le bouton droit sur
Sheet1.xml
,sheet2.xml
, etc. et sélectionnez Modifier. - Trouver la partie
<sheetProtection password="XXXX" sheet="1" objects="1" scenarios="1" />
- Retirez le mot de passe crypté (ie.
<sheetProtection password="" sheet="1" objects="1" scenarios="1" />
) - Enregistrez le fichier.
- Lorsque 7zip vous demande de mettre à jour l'archive, dites Oui.
- Fermez 7zip et rouvrez votre XLSX.
- Cliquez sur Déprotéger la feuille sur Revue tab.
- Facultatif: enregistrez votre fichier.
Cela a fonctionné pour moi. J'ai dû aussi cliquer sur "Ok" à quelques reprises lors de l'affichage du code VBA. –
Et encore un ajout à la réponse originale: Si vous avez un fichier xlsx, ouvrez-le dans Excel et "Enregistrer sous" xls. Et puis suivez les étapes ci-dessus ... –
Si vous avez un fichier '.xlsx', vous pouvez également le décompresser, faire la recherche/remplacer sur le fichier' xl/vbaProject.bin', puis re-zip. –
J'ai trouvé une autre façon de résoudre celui-ci pour éviter le mot de passe du projet VBA, sans perdre le mot de passe Excel.
utilisation Hex-éditeur XVI32 pour le processus
si le type de fichier est fichiers XLSM:
- Ouvrez le fichier XLSM avec 7-Zip (clic droit -> 7-Zip -> Archives ouvertes).
- Copiez le xl/fichier vbaProject.bin sur le fichier (vous pouvez glisser-déposer de 7-Zip), ne fermez pas 7-Zip
- Ouvrir le fichier vbaProject.bin avec HexEdit
- Rechercher « DPB = » et le remplacer par « DPx = »
- Enregistrez le fichier
- Copier ce fichier dans 7-Zip (encore une fois, faites des travaux drop)
- Ouvrez fichier XLSX dans Excel, si vous êtes invité à "Continuer le chargement du projet", cliquez sur Oui. Si vous êtes invité avec des erreurs, cliquez sur OK.
- Appuyez sur Alt + F11 pour ouvrir l'éditeur VBA.
- Appuyez sur pour afficher l'erreur "Erreur inattendue (40230)", cliquez simplement sur OK (6 ou 7 fois) jusqu'à ce qu'elle disparaisse.
- Ensuite, il ouvrira automatiquement
fait quelques googler - il semble qu'il n'y ait aucun moyen direct - vous devez utiliser un sendkeys bidouille [http://www.mrexcel.com/forum/showthread.php?t = 49034] (http: //www.mrexcel.com/forum/showthread.php? t = 49034) –
La réponse marquée n'est pas la meilleure .... la meilleure réponse est venue des années plus tard par Uygar Y –
@JeremyThompson - cette réponse ne répond pas à cette question. Il explique comment supprimer manuellement un mot de passe inconnu. Cette question demande comment _programmatically_ supprimer un _known_ password. –