Déprotection d'un projet vba par code

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

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.