protéger macro dans fichier

P

patrick

Guest
Bonjour,

Dans la macro suivante je recopie un module dans un classeur que je crée.
Quel est le code pour que la macro du classeur soit protégée par mot de passe ?

Dim S As String, Wbk As Workbook
Set Wbk = Workbooks("Perso.xls")
With Wbk.VBProject.VBComponents("Module7").CodeModule
S = .Lines(1, .CountOfLines)
End With

ActiveWorkbook.VBProject.VBComponents.Add 1
With ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule
.AddFromString S
End With

Merci au forum
 
S

sab

Guest
bonjour patrick ,

Oui, voici un exemple complet, le code est de Chip Pearson :

Sub TestProtect()
ProtectVBProject Workbooks("Proteger_deproteger.xls"), "motdepasse"
End Sub

Sub TestUnprotect()
UnprotectVBProject Workbooks("Proteger_deproteger.xls"), "motdepasse"
End Sub

Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object

Set vbProj = WB.VBProject

'can't do it if already unlocked!
If vbProj.Protection <> 1 Then Exit Sub

Set Application.VBE.ActiveVBProject = vbProj

' now use lovely SendKeys to quote the project password
SendKeys Password & "~~"
Application.VBE.CommandBars(1).FindControl(ID:=2578,
recursive:=True).Execute
End Sub

Sub ProtectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object

Set vbProj = WB.VBProject

'can't do it if already locked!
If vbProj.Protection = 1 Then Exit Sub

Set Application.VBE.ActiveVBProject = vbProj

' now use lovely SendKeys to set the project password
SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _
Password & "~"

Application.VBE.CommandBars(1).FindControl(ID:=2578,
recursive:=True).Execute

WB.Save
End Sub



isabelle
 

Discussions similaires

Statistiques des forums

Discussions
312 581
Messages
2 089 919
Membres
104 307
dernier inscrit
Diet