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éprotégé code VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 270
    Par défaut
    Bonjour cela fait quelque heures que je suis sur le problème j'ai lu
    pas mal d'ancien topic sur le sujet mais je ne comprend pas pourquoi cela ne fonctionne toujours pas.
    J'ai un fichier protégé dans lequel il faut que je supprime des modules etc...
    L'application que je suis en train de mettre en place demande à l'utilisateur
    sur quel fichier veut il effectuer l'opération et c'est parti.
    Voici un bout de code :
    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
     
     
            Dim Pass As String
            Pass = "toto"
        MsgBox "choisir le fichier", vbOKOnly
        Application.FileDialog(msoFileDialogFilePicker).Show
        If Application.FileDialog(msoFileDialogFilePicker).SelectedItems.Count <> 1 Then
            Exit Sub
        End If
     
        Set Wk = Application.Workbooks.Open(Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1))
     
        Set vbProj = Wk.VBProject
     
        If vbProj.Protection = vbext_pp_locked Then
     
            Set Application.VBE.ActiveVBProject = vbProj
            SendKeys Pass, True
     
        End If
     
    ' suite du code qui va supprimer les modules
    Le code plante dès lorsque je veux supprimer les modules il me dit que le code est tout simplement protègé.
    Merci d'avance

    J'ai l'impression que le problème viens de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set Application.VBE.ActiveVBProject = vbProj
    Car en rajoutant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MsgBox (Application.VBE.ActiveVBProject.Filename)
    pour voir si le projet vbactif est devenu le fichier que je viens d'ouvrir et bien surprise on dirais que Set n'a pas marché

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 270
    Par défaut
    Bon en fait non si j'execute sans le debuger avec la MSGBOX :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MsgBox (Application.VBE.ActiveVBProject.Filename)
    J'ai bien le bon nom de fichier, mais toujours pareil le code s'arrete avec erreur
    "impossible de continuer cette opération tant que projet est protégé"

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 270
    Par défaut
    Ok bon petit à petit ca avance j'ai décidé de faire une fonction spécialement pour dévérouiller le code que j'ai trouvé sur un ancien poste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
      Dim vbProj As Object
     
      Set vbProj = WB.VBProject
     
       If vbProj.Protection <> 1 Then Exit Sub
     
      Set Application.VBE.ActiveVBProject = vbProj
     
      SendKeys Password & "~~"
     
      Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
    End Sub
    Le macro s'arrete à présent pour demandé le mdp mais le SendKeys n'a pas l'air de fonctionner

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 270
    Par défaut
    Problème résolu !!!!

    J'envoi le SendKey après mon Sub UnprotectVBProject

    @ Bientot

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

Discussions similaires

  1. afficher un graphique dans word à partir de mon code vba
    Par guysocode dans le forum VBA Word
    Réponses: 2
    Dernier message: 07/11/2005, 14h15
  2. Réponses: 2
    Dernier message: 27/10/2005, 15h51
  3. Réponses: 4
    Dernier message: 13/10/2005, 14h44
  4. Réponses: 3
    Dernier message: 06/09/2005, 10h27
  5. Comment creer une procédure stockée à partir d'un code VBA?
    Par Alcor020980 dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 24/05/2005, 19h55

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