OVH Cloud OVH Cloud

Macro inopérante

33 réponses
Avatar
jenesaispaspourquoi
Bonjour à toutes et tous,

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.

10 réponses

1 2 3 4
Avatar
jenesaispaspourquoi
Le mercredi 15 Octobre 2014 à 21:37 par jenesaispaspourquoi :
Bonjour à toutes et tous,

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:%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

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.


MichD,

Je me suis très probablement mal exprimé.

Le fichier que vous m'avez fourni comporte une faille niveau protection à savoir:
Déprotection du projet VB à l'aide d'un logiciel tiers qui demande de rentrer un nouveau mot de passe et enregistrer pour ensuite réouvrir et avoir accès à l'intégralité du fichier.
Mon but est de leurrer la personne qui croyant avoir réussi la déprotection entre un mot de passe quelconque différent de celui initialement entré (surement à définir dans la macro), donc mot de passe différent, destruction.
En espérant avoir été un peu plus clair.

Cordialement
Avatar
MichD
A )
La protection des feuilles a été renforcée dans Excel 2013.
Le logiciel dont tu fais référence dans ton commentaire va
éprouver beaucoup de difficulté à déprotéger les feuilles!

B )
Ceci étant, dès que tu ouvres le classeur affichant les feuilles de travail,
elles sont toutes protégées.
Le classeur est aussi protégé ce qui signifie que l'usager ne peut pas
ajouter
ou supprimer ou déplacer des feuilles.

C )
La restriction que j'avais émise est levée. Tu peux fermer le classeur sans
être obligé de le sauvegarder!

À toi de le tester à fond!

Voici le fichier : http://cjoint.com/?DJusOXbclL4
Avatar
jenesaispaspourquoi
Le mercredi 15 Octobre 2014 à 21:37 par jenesaispaspourquoi :
Bonjour à toutes et tous,

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:%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

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.


Bonsoir MichD,

Je ne suis pas sûr d'avoir tout compris ... ni certain d'avoir été le bon destinataire du fichier précédent.
Merci pour votre réponse.

Cordialement
Avatar
MichD
Ce n'est pas grave pour moi! Toi, cela te couter seulement 2 fois plus
cher, étant donné que tu as reçu 2 fichiers! ;-)

http://cjoint.com/?DJuuBvxhfzB
Avatar
jenesaispaspourquoi
Le mercredi 15 Octobre 2014 à 21:37 par jenesaispaspourquoi :
Bonjour à toutes et tous,

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:%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

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.


MichD,

Merci pour ce fichier qui correspond à ce que je veux.
Toutefois un Hic (un de plus, car je suis pénible), la macro se comporte comme prévu mais avec un temps de retard (c'est à dire que les macros peuvent être vues, modifiées... avant que le fichier ne s'auto-détruise).
Certains petits programmes de déprotection sont d'une redoutable efficacité et je commence à épuiser mon stock d'idées pour, si ce n'est empêcher, du moins bien retarder l'échéance...
Si vous pensez à une astuce ou autre, je suis preneur.
Quoiqu'il en soit, je souhaite pour la mise à disposition de votre savoir, le temps passé et votre précieuse aide, vous faire parvenir une petite bouteille de vin de vers chez moi.
Si vous le souhaitez, faites moi parvenir votre adresse en MP.

Un très grand MERCI à vous
Cordialement
Avatar
MichD
Les petits programmes dont tu parles fonctionnent bien et rapidement
pour les versions antérieures à Excel 2007. Depuis la version 2007,
déprotéger le code est beaucoup plus ardu. Et avec la venue d'Excel 2013,
même les feuilles sont devenues difficiles d'accès quant à la protection.

Ceci étant dit, si quelqu'un vraiment à ouvrir un fichier Excel et enlever
toutes les protections, il n'y a pas grand-chose que l'on peut faire si ce
n'est
que lui compliqué la vie.

Passe à Excel 2013 et utilise un mot de passe relativement long contenant
des lettres - minuscules et majuscules, les signes de ponctuations et des
chiffres.
L'usager devra passer un "bon" moment pour tout déprotéger. Certains vont
même
jusqu'à employer une petite phrase qu'il trouve facile à mémoriser!

Utilise tes petits logiciels et essaie d'ouvrir le projetVBA de ce classeur
http://cjoint.com/?DJuxCRZdPa2

Es-tu capable d'ouvrir le projetVBA du classeur?
La feuille du classeur n'est pas protégée.

N.B. Je te fais remarquer que si tu donnes accès à un fichier Excel à un
usager, ce
dernier peut extraire toutes les données des feuilles sans devoir les
afficher.

Merci pour l'offre, mais ici l'aide est gratuite et c'est bien comme ceci.
Avatar
Jacquouille
Bonjour

Dans la distribution de bouteilles, je pense qu'il faut y associer les
lecteurs (bénévoles eux aussi).
Ils méritent salaire eux aussi pour avoir suivi un fil aussi long, mais
surtout pour l'usure prématurée et anormale de la souris pour le défilement
d'environ 2 m de msg à chaque fois.

Perso, un blanc bien frais ou un rosé ..... que je suis d'accord de
partager.


Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"jenesaispaspourquoi" a écrit dans le message de groupe de discussion :


Le mercredi 15 Octobre 2014 à 21:37 par jenesaispaspourquoi :
Bonjour à toutes et tous,

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:%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

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.


MichD,

Merci pour ce fichier qui correspond à ce que je veux.
Toutefois un Hic (un de plus, car je suis pénible), la macro se comporte
comme
prévu mais avec un temps de retard (c'est à dire que les macros peuvent être
vues, modifiées... avant que le fichier ne s'auto-détruise).
Certains petits programmes de déprotection sont d'une redoutable efficacité
et
je commence à épuiser mon stock d'idées pour, si ce n'est empêcher, du moins
bien retarder l'échéance...
Si vous pensez à une astuce ou autre, je suis preneur.
Quoiqu'il en soit, je souhaite pour la mise à disposition de votre savoir,
le
temps passé et votre précieuse aide, vous faire parvenir une petite
bouteille de
vin de vers chez moi.
Si vous le souhaitez, faites moi parvenir votre adresse en MP.

Un très grand MERCI à vous
Cordialement


---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Avatar
Jacquouille
Bonjour Denis,

Ce serait sympa de prendre un pot tous ensemble, non? ( virtuellement, œuf
corse comme le disait JPS)

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
m23um4$ihd$

Les petits programmes dont tu parles fonctionnent bien et rapidement
pour les versions antérieures à Excel 2007. Depuis la version 2007,
déprotéger le code est beaucoup plus ardu. Et avec la venue d'Excel 2013,
même les feuilles sont devenues difficiles d'accès quant à la protection.

Ceci étant dit, si quelqu'un vraiment à ouvrir un fichier Excel et enlever
toutes les protections, il n'y a pas grand-chose que l'on peut faire si ce
n'est
que lui compliqué la vie.

Passe à Excel 2013 et utilise un mot de passe relativement long contenant
des lettres - minuscules et majuscules, les signes de ponctuations et des
chiffres.
L'usager devra passer un "bon" moment pour tout déprotéger. Certains vont
même
jusqu'à employer une petite phrase qu'il trouve facile à mémoriser!

Utilise tes petits logiciels et essaie d'ouvrir le projetVBA de ce classeur
http://cjoint.com/?DJuxCRZdPa2

Es-tu capable d'ouvrir le projetVBA du classeur?
La feuille du classeur n'est pas protégée.

N.B. Je te fais remarquer que si tu donnes accès à un fichier Excel à un
usager, ce
dernier peut extraire toutes les données des feuilles sans devoir les
afficher.

Merci pour l'offre, mais ici l'aide est gratuite et c'est bien comme ceci.


---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Avatar
jenesaispaspourquoi
Le mercredi 15 Octobre 2014 à 21:37 par jenesaispaspourquoi :
Bonjour à toutes et tous,

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:%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

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.


Bonjour MichD, Jacquouille, le forum,

J'apprécie l'ambiance qui règne sur ce forum et vous remercie pour votre bonne humeur.
Concernant votre petit fichier, je suis heureux de vous dire qu'avec mes petits outils je n'ai pas réussi à cracker le fichier... mais quelle est cette diablerie (et c'est moi qui le dit) ????
Je ne vous cache pas que je suis drôlement intéressé par la méthode et les codes. Ce fichier en terme de protection est ce qu'il me faut.
Serait-ce trop demandé de bénéficier de "votre savoir secret" ?
Pour les données, c'est sans importance car elles sont destinées à l'utilisateur de ce fichier qui est mis à disposition. Je cherche simplement à protéger au mieux la méthode utilisée.

En ce qui concerne l'offre, elle est aussi gratuite et proposée de bon coeur.
Cordialement
Avatar
Jacquouille
Méfions-nous quand même quand un Krakeur demande comment on protège
....... -))



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"jenesaispaspourquoi" a écrit dans le message de groupe de discussion :


Le mercredi 15 Octobre 2014 à 21:37 par jenesaispaspourquoi :
Bonjour à toutes et tous,

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:%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

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.


Bonjour MichD, Jacquouille, le forum,

J'apprécie l'ambiance qui règne sur ce forum et vous remercie pour votre
bonne
humeur.
Concernant votre petit fichier, je suis heureux de vous dire qu'avec mes
petits
outils je n'ai pas réussi à cracker le fichier... mais quelle est cette
diablerie (et c'est moi qui le dit) ????
Je ne vous cache pas que je suis drôlement intéressé par la méthode et les
codes. Ce fichier en terme de protection est ce qu'il me faut.
Serait-ce trop demandé de bénéficier de "votre savoir secret" ?
Pour les données, c'est sans importance car elles sont destinées à
l'utilisateur
de ce fichier qui est mis à disposition. Je cherche simplement à protéger au
mieux la méthode utilisée.

En ce qui concerne l'offre, elle est aussi gratuite et proposée de bon
coeur.
Cordialement


---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
1 2 3 4