IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Déverrouiller et verrouiller le code par programmation [XL-2002]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 26
    Par défaut Déverrouiller et verrouiller le code par programmation
    Bonjour,

    Lors de l'exécution de mon application j'importe et je supprime des UserForm. Puisque je veux protéger mon code, il est vérrouillé avec un mot de passe. Le problème c'est que lors de l'exécution de l'importation ou de la suppression, j'obtien l'erreur suivante:

    Erreur d'exécution '50289':

    Impossible d'effectuer cette opération tant que le projet est protégé.

    Comment est-ce que je peux déverrouiller et verrouiller mon projet par programmation?

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Pour déverrouiller le projet VBA tu peux tester la procédure ci-dessous, il faut malheureusement utiliser un SendKeys. Après fermeture du classeur en question, le projet sera à nouveau verrouillé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub test()
    Dim Classeur As Workbook, MotdePasse As String
     
    Set Classeur = ThisWorkbook
    MotdePasse = "toto"
     
    'déverrouillage du projet VBA
    UnprotectVBProject Classeur, MotdePasse
     
    End Sub
     
    Private Sub UnprotectVBProject(Wbk As Workbook, ByVal Pwd As String)
    Dim vbProj As Object
     
    Set vbProj = Wbk.VBProject
     
    If vbProj.Protection <> 1 Then Exit Sub
    Set Application.VBE.ActiveVBProject = vbProj
     
    SendKeys Pwd & "~~"
    Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
     
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 26
    Par défaut
    Merci pour votre réponse.

    Y a t-il un moyen de reverrouiller le code juste apres l'opération? Parce que si il faut attendre que le classeur soit fermé, l'utilisateur aura la possibilitée d'aller voir le code.

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Non la protection ne prend effet qu'à la fermeture du classeur. Même en le faisant manuellement tu pourras constater qu'après avoir protéger ton Projet VBA celui-ci reste accessible tant que le classeur reste ouvert.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 26
    Par défaut
    Merci pour les infos.

    Étant donné qu'il est impossible de verrouiller le code une fois déverrouillé, j'ai décider d'importer et de supprimer mes Userforms dans un autre classeur qui n'est pas protégé par mot de passe.

    http://www.developpez.net/forums/d11...tion-userform/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrir le planificateur de tâches Windows par programme
    Par BBPlastique dans le forum Windows
    Réponses: 8
    Dernier message: 16/07/2004, 11h30
  2. Escamoter la barre Windows par programme
    Par Invité dans le forum Windows
    Réponses: 4
    Dernier message: 01/06/2004, 16h03
  3. [Foxpro]Connexion ODBC par programme
    Par Richard MORRISSEY dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 07/07/2003, 21h55
  4. Enregistrement du son par programme
    Par Invité dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/06/2003, 23h13
  5. Comment créer un nouveau dossier par programmation ?
    Par annecyrond dans le forum Langage
    Réponses: 3
    Dernier message: 27/03/2003, 07h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo