Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Protéger un projet (urgent)

1 réponse
Avatar
Jacques
Bonjour

Désolé pour le mot urgent mais voilà mon problème. Une macro Excel génére
des numéros de questionnnaires .Si on protège le projet visual basic par un
mot de passe, on ne peut pas sauvegarder le fichier généré. Il y a plus de
800 fichiers a généré, ce qui veut dire que si l'on veut protéger les
projets, il faut ouvrir les 800 fichiers. Malheureusement .. pas le temps.
:-(

Est-il possible de déprotéger et de re-protéger le projet par le code ??


Merci de votre aide

1 réponse

Avatar
anonymousA
bonjour,

comprends pas tout dans ta demande, en fait surtout la raison initiale. Mais
voivi un exemple de code pour proteger et déproteger un projet VBA par
programmation.
A adapter à ta demande bien sur

Attribute VB_Name = "ProtegerDeprotegerVBAProject"

'Bill Manville, mpep

'=============== Sub TestProtect()
ProtectVBProject Workbooks("Perso.xls"), "zaza"
End Sub

Sub TestUnprotect()
UnprotectVBProject Workbooks("Perso.xls"), "zaza"
'pour qu'Excel reconnaisse la nouvelle situation (déprotection)
DoEvents
With Workbooks("Perso.xls")
'ajout d'un module standard
.VBProject.VBComponents.Add 1
End With
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:%78,
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:%78,
recursive:=True).Execute

WB.Save
End Sub
'===============
A+


Bonjour

Désolé pour le mot urgent mais voilà mon problème. Une macro Excel génére
des numéros de questionnnaires .Si on protège le projet visual basic par un
mot de passe, on ne peut pas sauvegarder le fichier généré. Il y a plus de
800 fichiers a généré, ce qui veut dire que si l'on veut protéger les
projets, il faut ouvrir les 800 fichiers. Malheureusement .. pas le temps.
:-(

Est-il possible de déprotéger et de re-protéger le projet par le code ??


Merci de votre aide