Nouveau venu sur le site, je cherche, après avoir longuement remué les archives, à faire fonctionner une macro mais sans succès...
Lors de mes recherches, j'ai trouvé une macro qui teste si mon projet VBA est protégé par mot de passe et si non, lance la macro suicide...
J'ai tourné et retourné le code mais n'arrive à rien. Je dois reconnaitre que mes connaissances en langage VBA sont limitées.
Voici ou j'en suis:
Thisworbook:
Private Sub ThisWorkbook_Activate()
'Si le fichier est déprotégé -> suicide , le fichier disparait totalement
If ThisWorkbook.VBProject.Protection = False Then
Call Module1.Suicide
End Sub
Sub TestUnprotect()
'"toto" représente le mot de passe
UnprotectVBProject ThisWorkbook, "toto"
Call Module1.Suicide
End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object
Set vbProj = WB.VBProject
If vbProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
SendKeys Password & "~~~"
Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
End Sub
Module:
Sub Suicide()
Dim FName As String
Dim Ndx As Integer
With ThisWorkbook
.Save
For Ndx = 1 To Application.RecentFiles.Count
If Application.RecentFiles(Ndx).Path = .FullName Then
Application.RecentFiles(Ndx).Delete
Exit For
End If
Next Ndx
.ChangeFileAccess Mode:=xlReadOnly
Kill .FullName
.Close SaveChanges:=False
End With
End Sub
Je n'arrive pas à comprendre le processus et souhaiterais arriver à mes fins.
Quelqu'un aurait-il des suggestions ?
Merci d'avance pour vos réponses et votre contribution.
Peux-tu infirmer ou confirmer si l'ouverture des dernières versions d'Excel à partir de 2007 est aussi facile à déprotéger les projetVBA que l'étaient les versions précédentes?
Pour ce qui est de l'astuce, je ne peux pas la publier par respect aux "vrais" développeurs qui ont peu d'avenues de protéger leurs droits d'auteur et leur gagne-pain. Cela fait au moins 15 ans que je participe à différents forums et je n'ai vu qu'une fois où l'auteur du message y a fait une légère allusion sans donner le code...
Le mieux que je peux t'offrir, tu envoies ton FICHIER FINAL avec le mot de passe avec lequel tu veux protéger le projetVBA. J'organiserai moi-même la touche finale de ton fichier quant à la protection. Évidemment, tu conserves une version non protégée si un jour tu veux apporter des modifications. Je ne ferai ça qu'UNE fois. Assure-toi que ton fichier est "parfait" avant de me l'envoyer.
Utilise cette adresse : "MichDenis" et le @ pour finir par Hotmail.com. Inscris dans l'objet de Message mon pseudonyme sinon ton message ne me sera pas accessible!
Si ton fichier contient des informations personnelles, tu devras te contenter des explications déjà données.
Bonjour,
Peux-tu infirmer ou confirmer si l'ouverture des dernières versions d'Excel
à partir de 2007 est aussi facile à déprotéger les projetVBA que l'étaient
les versions précédentes?
Pour ce qui est de l'astuce, je ne peux pas la publier par respect aux
"vrais" développeurs qui ont peu d'avenues de protéger leurs droits d'auteur
et leur gagne-pain. Cela fait au moins 15 ans que je participe à différents
forums et je n'ai vu qu'une fois où l'auteur du message y a fait une légère
allusion sans donner le code...
Le mieux que je peux t'offrir, tu envoies ton FICHIER FINAL avec le mot de
passe avec lequel tu veux protéger le projetVBA. J'organiserai moi-même la
touche finale de ton fichier quant à la protection. Évidemment, tu conserves
une version non protégée si un jour tu veux apporter des modifications. Je
ne ferai ça qu'UNE fois. Assure-toi que ton fichier est "parfait" avant de
me l'envoyer.
Utilise cette adresse : "MichDenis" et le @ pour finir par
Hotmail.com. Inscris dans l'objet de Message mon pseudonyme sinon ton
message ne me sera pas accessible!
Si ton fichier contient des informations personnelles, tu devras te
contenter des explications déjà données.
Peux-tu infirmer ou confirmer si l'ouverture des dernières versions d'Excel à partir de 2007 est aussi facile à déprotéger les projetVBA que l'étaient les versions précédentes?
Pour ce qui est de l'astuce, je ne peux pas la publier par respect aux "vrais" développeurs qui ont peu d'avenues de protéger leurs droits d'auteur et leur gagne-pain. Cela fait au moins 15 ans que je participe à différents forums et je n'ai vu qu'une fois où l'auteur du message y a fait une légère allusion sans donner le code...
Le mieux que je peux t'offrir, tu envoies ton FICHIER FINAL avec le mot de passe avec lequel tu veux protéger le projetVBA. J'organiserai moi-même la touche finale de ton fichier quant à la protection. Évidemment, tu conserves une version non protégée si un jour tu veux apporter des modifications. Je ne ferai ça qu'UNE fois. Assure-toi que ton fichier est "parfait" avant de me l'envoyer.
Utilise cette adresse : "MichDenis" et le @ pour finir par Hotmail.com. Inscris dans l'objet de Message mon pseudonyme sinon ton message ne me sera pas accessible!
Si ton fichier contient des informations personnelles, tu devras te contenter des explications déjà données.
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String) Dim vbProj As Object
Set vbProj = WB.VBProject
If vbProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
SendKeys Password & "~~~" Application.VBE.CommandBars(1).FindControl(ID:%78, recursive:=True).Execute End Sub
Module:
Sub Suicide() Dim FName As String Dim Ndx As Integer With ThisWorkbook .Save For Ndx = 1 To Application.RecentFiles.Count If Application.RecentFiles(Ndx).Path = .FullName Then Application.RecentFiles(Ndx).Delete Exit For End If Next Ndx .ChangeFileAccess Mode:=xlReadOnly Kill .FullName .Close SaveChanges:úlse End With End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object
Set vbProj = WB.VBProject
If vbProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
SendKeys Password & "~~~"
Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
End Sub
Module:
Sub Suicide()
Dim FName As String
Dim Ndx As Integer
With ThisWorkbook
.Save
For Ndx = 1 To Application.RecentFiles.Count
If Application.RecentFiles(Ndx).Path = .FullName Then
Application.RecentFiles(Ndx).Delete
Exit For
End If
Next Ndx
.ChangeFileAccess Mode:=xlReadOnly
Kill .FullName
.Close SaveChanges:=False
End With
End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String) Dim vbProj As Object
Set vbProj = WB.VBProject
If vbProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
SendKeys Password & "~~~" Application.VBE.CommandBars(1).FindControl(ID:%78, recursive:=True).Execute End Sub
Module:
Sub Suicide() Dim FName As String Dim Ndx As Integer With ThisWorkbook .Save For Ndx = 1 To Application.RecentFiles.Count If Application.RecentFiles(Ndx).Path = .FullName Then Application.RecentFiles(Ndx).Delete Exit For End If Next Ndx .ChangeFileAccess Mode:=xlReadOnly Kill .FullName .Close SaveChanges:úlse End With End Sub