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à ?????
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.