Partager via

[EXCEL-2016] Verrouiller le Projet VBA

Anonyme
2020-01-08T20:26:39+00:00

Bonsoir @toute l'équipe !

J'ai un classeur avec plusieurs codes VBA. Et mon projet VBA est protéger par un Mot de Passe.

J'y ai rajouté récemment un module permettant d'afficher un MSGBOX personnalisé.

Du coup, à chaque ouverture de fichier, j'ai le message ci-dessous :

J'ai trouvé sur cette page comment déverrouiller le projet:

Sub OterProtectionPRojetVBA()

UnprotectVBProject ActiveWorkbook, "1234"

End Sub


Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)

Dim vbProj As Object

Set vbProj = WB.VBProject

'Ne peut procéder si le projet est non-protégé.

If vbProj.Protection <> 1 Then Exit Sub

Set Application.VBE.ActiveVBProject = vbProj

'Utilisation de "SendKeys" Pour envoyer le mot de passe.

SendKeys Password & "{TAB}{ENTER}{ENTER}", True

'MsgBox "Après Mot de passe"

Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute

End Sub


Le code fonctionne bien, seulement, il faut attendre d'avoir fermé et ouvert à nouveau le fichier pour que le Projet se verrouille.

Ma question est la suivante :

=> Est-il possible de verrouiller (bloquer à la lecture) le projet VBA après que le code à l'ouverture du fichier ait fini de s'exécuter ?

D'avance merci pour votre aide précieuse !

Bien cordialement,

Evguen

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

  1. DanielCo 107.7K Points de réputation
    2020-01-13T09:50:11+00:00

    Oui, mais ton code modifie le projet VBA, ce qui nécessite que le projet soit déverrouillé. Ce n'est pas le cas avec un userform déjà créé dans le projet :

    Le userform est créé en faisant un clic droit sur le projet et en cliquant sur "insertion" et "Userform" :

    et en ajoutant ensuite les boutons. Je te mets un lien sur un classeur exemple. Le projet est verrouillé avec le mot de passe "toto".

    https://mon-partage.fr/f/hAkqevzm/

    Daniel

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

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire

11 réponses supplémentaires

  1. Anonyme
    2020-01-14T15:28:09+00:00

    Bonjour DanielCo,

    Merci infiniment pour ta userform!

    Ça fonctionne nickel !

    Evguen

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

    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2020-01-14T09:28:14+00:00

    Bonjour,

    Je ne comprends pas. Avec ma solution, le userform est créé une fois pour toutes. Tu n'as pas à t'en réoccuper.

    Cordialement.

    Daniel

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

    0 commentaires Aucun commentaire
  3. Anonyme
    2020-01-13T21:01:28+00:00

    Bonsoir DanielCo,

    Merci pour ton aide et ton conseil avisé.

    Je comprends mieux pourquoi le fichier me demande de déverrouiller le projet au démarrage.

    C'est parce qu'il crée à chaque fois un userform.

    => Est-il possible de rajouter dans le code une condition où il vérifiera si l’userform est déjà crée ou non?

    Si oui, il ne la crée plus

    Si non, il la crée.

    D'avance merci DanielCo.

    Bonne soirée !

    Evguen

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

    0 commentaires Aucun commentaire