mot de passe projet VBA

Roland Miller 20 Points de réputation
2025-09-29T20:16:17.68+00:00

Bonjour,

Par VBA j'ouvre d'abord Classeur1 et ensuite Classeur 2 .

À partir du classeur1 j'ai besoin pardu code VBA de déprotéger le projet VBA du classeur2.

J connais le mot de passe du projet du classeur2.

Comment procéder? Merci à l'avance.

Microsoft 365 et Office | Excel | Pour le business | Autres
0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question
Anonyme
2025-09-29T22:03:16.88+00:00

Cette réponse a été traduite automatiquement. Il peut donc y avoir des erreurs grammaticales ou des formulations étranges.

Bonjour @Roland Miller,

Merci d’avoir publié votre question sur le forum Microsoft Q&A.

Après avoir examiné les fonctionnalités d’Excel, nous souhaitons clarifier qu’il n’est pas possible de déverrouiller par programmation un projet VBA dans un autre classeur, même si vous connaissez le mot de passe. Cette restriction est intentionnelle pour des raisons de sécurité, et aucune méthode ou API prise en charge dans Excel ne permet de la contourner.

Les tentatives d’automatisation, telles que l’utilisation de SendKeys, ne fonctionnent pas de manière fiable car la fenêtre de saisie du mot de passe pour les projets VBA bloque toute automatisation.

La seule méthode fiable et prise en charge consiste à le faire manuellement :

  1. Ouvrez le classeur cible.
  2. Appuyez sur Alt + F11 pour ouvrir l’éditeur Visual Basic.
  3. Dans l’Explorateur de projets, sélectionnez le projet souhaité.
  4. Clic droit → Propriétés de VBAProject… → onglet Protection. Image de l’utilisateur
  5. Saisissez le mot de passe, décochez la case Verrouiller le projet pour la visualisation, puis effacez les champs de mot de passe. Image de l’utilisateur
  6. Cliquez sur OK.

Une fois cette opération effectuée, le projet sera accessible pour consultation ou modification.

Nous comprenons que cela puisse ne pas convenir aux scénarios d’automatisation, mais c’est la seule approche prise en charge afin de garantir la sécurité des projets VBA.

L’interface de test actuelle étant en anglais, les captures d’écran seront également affichées en anglais. Cependant, vous pouvez bien entendu effectuer les mêmes opérations dans l’interface française.


Si cette réponse vous a été utile, veuillez cliquer sur Accepter la réponse" et n’hésitez pas à lui attribuer un vote positif. Si vous avez des questions supplémentaires concernant cette réponse, cliquez sur "Commentaire".

Remarque : Veuillez suivre les étapes de notre documentation pour activer les notifications par e-mail si vous souhaitez recevoir les notifications associées à cette discussion.

Cette réponse a-t-elle été utile ?

0 commentaires Aucun commentaire

2 réponses supplémentaires

  1. Roland Miller 20 Points de réputation
    2025-10-01T22:26:43.4366667+00:00

    Bonjour,

    Wow! Merci énormément! Cela fonctionne et est une meilleure solution pour moi que de faire un Enregistrer sous en .xlsx. Car même si cette dernière façon peut aussi fonctionner elle nécessite ensuite que je supprime un fichier à la fin des actions.

    Par hasard croyez-vous que cette façon de faire pourrait faire en sorte que ceci fonctionne?

    Suite à la mise à jour que je fais sur un fichier par exemple je dois faire un Enregistrer sous d'un fichier pour en remplacer un autre.

    Mais lorsque ce fichier est sur OneDrive et que la synchronisation est activée alors ça plante. Si soit manuellement ou par VBA j'interrompt d'abord la synchronisation avant de faire l'enregistrer sous ... tout est OK.

    Si je procède avec le même code ... qu'en pensez-vous? Ou y a t'il une façon de faire qui peut ressembler?

    J'utilise une fonction dans VBA GetLocalPath qui fait en sorte que l'utilisation du fichier même si OneDrive fonctionne. Depuis mai dernier désactiver la collaboration des fichiers dans OneDrive (par un clé du registre) n'est plus possible.

    Merci à l'avance.

    Cette réponse a-t-elle été utile ?


  2. Roland Miller 20 Points de réputation
    2025-09-29T22:43:37.0933333+00:00

    Encore merci pour votre réponse très claire.

    Dans ce même scénario soit lorsque j'ouvre le classeur2 ... je suis en Office 64 bits ... et le classeur2 contient du code API mais avec du code pour Office 32 bits.

    Y a t'il alors une façon de désactiver les macros ou le projet (contenu) (par VBA) afin que je n'aie pas de messages d'erreur?

    Je réussi à ouvrir le fichier mais aussitôt que je lance une action ... des messages d'erreur de compilation s'affichent et bloquent.

    Merci à l'avance.

    Cette réponse a-t-elle été utile ?


Votre réponse

Les réponses peuvent être marquées comme « Acceptées » par l’auteur de la question et « Recommandées » par les modérateurs, ce qui aide les utilisateurs à savoir que la réponse a résolu le problème de l’auteur.