Comment supprimer par programme un mot de passe (connu) d'un projet Excel VBA ?
Pour être clair : je veux supprimer le mot de passe du projet VBA, pas du classeur ou des feuilles de calcul.
Comment supprimer par programme un mot de passe (connu) d'un projet Excel VBA ?
Pour être clair : je veux supprimer le mot de passe du projet VBA, pas du classeur ou des feuilles de calcul.
Une autre façon de supprimer le mot de passe d'un projet VBA ;
UPDATE : Pour Excel 2010 (Travaux pour MS Office Pro Plus 2010 [14.0.6023.1000 64bit]),
Si le classeur est protégé :
xl
workbook.xml
et sélectionnez Modifier
<workbookProtection workbookPassword="XXXX" lockStructure="1"/>
( XXXX
est votre mot de passe crypté)XXXX
partie. (c'est-à-dire. <workbookProtection workbookPassword="" lockStructure="1"/>
)Si les feuilles de calcul sont protégées :
xl/worksheets/
dossier.Sheet1.xml
, sheet2.xml
etc. et sélectionnez Modifier .<sheetProtection password="XXXX" sheet="1" objects="1" scenarios="1" />
<sheetProtection password="" sheet="1" objects="1" scenarios="1" />
)
Ça a marché pour moi. J'ai également dû cliquer plusieurs fois sur "Ok" lors de l'affichage du code VBA.
Et un autre ajout à la réponse originale : Si vous avez un fichier xlsx, ouvrez-le dans Excel et "Enregistrez sous" xls. Puis suivez les étapes ci-dessus...
Si vous avez un .xlsx
vous pouvez également le décompresser, effectuer la recherche/remplacement sur le fichier xl/vbaProject.bin
puis ré-assembler le fichier.
J'ai trouvé un autre moyen de résoudre ce problème en évitant le mot de passe du projet VBA, sans perdre le mot de passe Excel.
utiliser Éditeur hexagonal XVI32 pour le processus
si le type de fichier est un fichier XLSM :
Cette astuce a fonctionné pour moi...mais avec une petite modification...à l'étape:9 l'erreur n'allait pas après 20-25 clics aussi. J'ai enregistré le fichier dans un autre et cela a fonctionné.
Cela a fonctionné pour moi dans Excel 2016 64 bit. Et vous n'avez pas vraiment besoin d'un éditeur hexagonal. Vous pouvez rechercher et remplacer (étape 4) en utilisant notepad++ ou tout autre éditeur de texte similaire. Le commentaire précédent est également vrai. "Unexpected error (40230)" disparaît après avoir enregistré comme un nouveau fichier XLSM et rouvert excel.
Il s'agit d'une méthode simple utilisant SendKeys pour déprotéger le projet VBA. Cela vous permet d'accéder au projet, et vous devez continuer à utiliser SendKeys pour trouver un moyen de supprimer la protection par mot de passe : http://www.pcreview.co.uk/forums/thread-989191.php
Et en voici un qui utilise une méthode de déprotection plus avancée et un peu plus fiable. Encore une fois, il ne déverrouillera que le projet VB pour vous. http://www.ozgrid.com/forum/showthread.php?t=13006&page=2
Je n'ai pas essayé l'une ou l'autre méthode, mais cela peut vous faire gagner du 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, car le projet est verrouillé, donc, tout nouveau script n'est pas possible à exécuter !?
Réponse d'Uygar Y ci-dessous est toujours une réponse pertinente qui fonctionne avec Office 2016. Le fait qu'elle fonctionne complètement et facilement sape toutes les attentes que l'on pourrait avoir concernant l'utilisation des mots de passe Office pour sécuriser les documents. Je n'ai jamais eu une grande confiance en eux, supposant qu'ils pouvaient être désactivés avec des heures de travail informatique, mais sa réponse a fonctionné pour moi avec deux minutes de travail. Les mots de passe empêchent les personnes honnêtes et non informaticiennes d'entrer, mais c'est surtout de la poudre aux yeux, à mon avis.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
J'ai fait quelques recherches sur Internet - il semble qu'il n'y ait pas de moyen direct - il faut utiliser un bidule de sendkeys. http://www.mrexcel.com/forum/showthread.php?t=49034
4 votes
La réponse marquée n'est PAS la meilleure.... la meilleure réponse est venue des années plus tard par Uygar Y
4 votes
@JeremyThompson - cette réponse ne répond pas à cette question. Elle explique comment supprimer manuellement un mot de passe inconnu. Cette question demande comment de manière programmée supprimer un connu sous le nom de mot de passe.
0 votes
si aucune des réponses ci-dessous ne fonctionne pour vous, essayez celle-ci
0 votes
Office 365 Excel (2016 au moment de la rédaction de ce message). Modification effectuée en utilisant Notepad++ (x64) avec le plugin Hexedit (x64) 1) En utilisant 7-zip, ouvrir le fichier xl via rt clk ' open archive * ' 2) Descendre dans ' xl ' 3) Rt clk ' vbaProject.bin ', ouvrir comme : 4) Ouvrir en utilisant Notepadd++ 5) Passer à HexEdit 6) Trouver DPB= et le renommer en DPX= 7) Enregistrer la modification et mettre à jour l'archive 8) Ouvrez le fichier xl, sélectionnez oui lorsque vous êtes invité à continuer (erreur xl trouvé) 9) Créez un nouveau pwd dans visual basic (trouvé sous dev/visual basic : tools/vbaproject properties) 10) Sauvegardez et rouvrez. Viola !