Déprotection d'un projet vba par code

Soyez le premier à donner votre avis sur cette source.

Snippet vu 21 014 fois - Téléchargée 47 fois

Contenu du snippet

Déprotéger ce projet à l'aide de code VBA (connaissant bien sûr le mot de passe) ?

Source / Exemple :


Private Declare Function FindWindowA Lib "User32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetForegroundWindow Lib "User32" () As Long 
Private Declare Function SetForegroundWindow Lib "User32" (ByVal hWnd As Long) As Long
Function Déprotège(Classeur As String, MdP As String) As Boolean
Dim XLhWnd As Long, VBEhWnd As Long, CurhWnd As Long
Dim Wbk As Workbook
On Error Resume Next
Set Wbk = Workbooks(Dir$(Classeur))
On Error GoTo Fin
  If Not Wbk Is Nothing Then
    If UCase$(Wbk.FullName) <> UCase$(Classeur) Then Exit Function
    If Not Wbk.Saved Then Wbk.Save
  End If
  If Not ActiveWorkbook Is Wbk Then Set Wbk = ActiveWorkbook
  CurhWnd = GetForegroundWindow
  XLhWnd = FindWindowA("XLMAIN", Application.Caption)
  With Application.VBE
    VBEhWnd = FindWindowA("wndclass_desked_gsk", .MainWindow.Caption)
    If CurhWnd = XLhWnd Then SetForegroundWindow VBEhWnd
      .CommandBars.FindControl(ID:=2557).Execute
    Workbooks.Open Classeur
    If ActiveWorkbook.VBProject.Protection = 1 Then
      SendKeys "~" & MdP & "~", True
      .ActiveCodePane.Window.Close
    End If
  End With
  Wbk.Activate
  SetForegroundWindow CurhWnd
  Déprotège = True
  Exit Function
Fin:
End Function
Sub Test()
  Const Classeur = "C:\Temp\Test.xls"
  If Not Déprotège(Classeur, "zackarrylepourri") Then
    MsgBox "Erreur : projet déjà déprotégé ?"
  Else
    MsgBox "Projet VBA déprotégé."
    With Workbooks(Dir$(Classeur))
      .VBProject.VBComponents.Add 1
      .Close True
    End With
    Workbooks.Open Classeur
    MsgBox "Projet reprotégé après ajout d'un module standard."
  End If
End Sub

Conclusion :


Il y a rien là ?????

A voir également

Ajouter un commentaire

Commentaires

cs_KILIMANJARO
Messages postés
8
Date d'inscription
dimanche 26 octobre 2003
Statut
Membre
Dernière intervention
15 août 2005
-
Effectivement cela ne marche pas. Qui a la solution ?
cs_Michel83
Messages postés
1
Date d'inscription
jeudi 30 mai 2002
Statut
Membre
Dernière intervention
30 mai 2002
-
Je suis vivement interessé par la possibilité de changer par programmation un source VBA Excel protégé par un mot de passe connu.
Malheureusement l'usine à gaz proposée par chipaolee ne marche absolument pas !
Zackarry
Messages postés
28
Date d'inscription
vendredi 13 juillet 2001
Statut
Membre
Dernière intervention
1 février 2002
-
oh chip c un pour les teub ici alors le niveau 3 laisse tomber. Y sont encore au niveau 1 et ils y arrivent pôa. edrrrrrrrrrrrrrrrr !! j'en tiens pour preuve la remarque de baltringue de ATH 500.
c'est quoi un VBA ?
Ca marche pôa ton truc c pourri et en plus il est ou le zip ??
AHHHHHHHH !!! RE CASSAGEEEEEEEEEE !!!! I m a king of the WORLDDDDDD !!!!

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.