Macro destruction ne fonctionne pas

  • Initiateur de la discussion Initiateur de la discussion Annette
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Annette

XLDnaute Occasionnel
Bonjour à toutes et tous, bonjour le forum,

Après avoir longuement cherché, ici et ailleurs, j'ai décidé de faire appel à vos connaissances et compétences.
Je tente de faire fonctionner une macro visant à détruire le fichier en cours si une des feuilles ou le projet VB est déprotégé.
Mes compétences en VB sont extrêmement limitées et si quelqu'un pouvait me suggérer une ou plusieurs solutions 😱.

Merci pour vos suggestions
Cordialement
 

Pièces jointes

Dernière édition:
Re : Macro destruction ne fonctionne pas

Bonjour Staple 1600, bonjour le forum,

Merci pour votre retour et pour votre implication.
Je comprends tout à fait votre point de vue et ne suis pas loin de le partager à 100 %, MAIS je reste persuadée qu'une bonne stratégie (et cette macro fait partie de cette stratégie) compliquera grandement les tentatives de déprotection.
Je reste en recherche active d'informations et souhaite faire aboutir mon projet dans son intégralité, donc si un membre du forum souhaite m'aider à trouver une solution pour mettre en pratique ma stratégie, je suis tout ouïe.

Merci pour vos suggestions
Cordialement
 
Re : Macro destruction ne fonctionne pas

Bonjour le forum,

Dans la suite logique de ma demande initiale, je cherche à ajouter du code à mon code existant, à savoir:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'Si le fichier est déprotégé -> suicide , le fichier disparaît totalement
If ThisWorkbook.VBProject.Protection = False Then
Call ThisWorkbook.Suicide
End If
End Sub


If ThisWorkbook.VBProject.Protection = False Then : du peu que j'en ai connaissance, "cette instruction vérifie" si le projet VB est protégé. Je cherche à rajouter du code dans le même genre pour vérifier également si la/les feuilles du classeur est/sont protégées.
Est-ce possible et si oui pourriez-vous m'y aider ?

Merci pour vos suggestions.
Cordialement
 
Re : Macro destruction ne fonctionne pas

Bonsoir à tous

Annette
Puisque tu persistes, alors vois ce que ceci peut t'inspirer
(test OK sur mon PC, le classeur n'était pas protégé, il a trépassé)
Code VB:
Sub KillingMeNotReallySoftlyWithThisProc()
'Petit hommage à Roberta au passage ;-)
'pour les oreilles voir ici: Roberta Flack - Killing me softly with his song - YouTube
With ThisWorkbook
If (.VBProject.Protection = vbext_pp_none) Then
MsgBox "Adieu Monde Cruel!", 16, "Arrrrrggggghhhhhhhhhhhhh."
.Saved = -1: .ChangeFileAccess 3
Kill .FullName: .Close 0
End if
End With
End Sub
 
Re : Macro destruction ne fonctionne pas

Bonsoir Staple 1600, bonsoir le forum,

Tout d'abord, Staple 1600, je vous remercie de continuer à tenter de me faire avancer dans mon projet malgré "notre petit différend" concernant "la protection" de fichier 🙂.
Pour faire suite à votre réponse, 2 problèmes se présentent à moi 😡
1) Le code précédemment fourni ne fonctionne pas chez moi donc impossible à tester
2) Le bout de code suivant me convient et fonctionne:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'Si le fichier est déprotégé -> suicide , le fichier disparaît totalement
If ThisWorkbook.VBProject.Protection = False Then
Call ThisWorkbook.Suicide
End If
End Sub

Ce code (je pense) vérifie que le projet VB est bien protégé et si non, en changeant de feuille la macro suicide se déclenche et fait tout simplement disparaitre le fichier.
Je souhaite changer et/ou rajouter du code pour vérifier que les feuilles sont bien protégées et si une ou plusieurs feuilles sont déprotégées, la macro suicide fait son office.
Je pense qu'il ne s'agit de pas grand chose à changer pour des experts en VB, mais malheureusement je n'en fait pas partie 😱 .

Merci pour vos suggestions
Cordialement
 
Re : Macro destruction ne fonctionne pas

Bonsoir à tous

Annette
Voici pour tester si les feuilles sont protégées.. or Not 😉
Code:
Sub a()
Dim ws As Worksheet
For Each ws In Worksheets
If Not ws.ProtectContents Then
MsgBox "La mort est devenue un état permanent.Le monde est aux fantômes, aux hyènes et aux vautours." _
& Chr(13) & "Moi je vous dis : bravo et vive la mort!"
End If
Next
End Sub
Merci à Hubert au passage 😉

Je te laisse faire les adaptations nécessaires pour y inclure le suicide excelien 😉
 
Dernière édition:
Re : Macro destruction ne fonctionne pas

Staple 1600,

Merci beaucoup pour ce code qui correspond exactement à ce que je cherche à faire 😉.
Toutefois, je vais me risquer à faire la difficile est vous demander s'il vous est possible de me donner des clés pour mixer les deux macros en une seule suite au changement de feuille car après plusieurs essais je n'y arrive pas 😕 🙁 😡.

Merci pour votre patience
Cordialement
 
Re : Macro destruction ne fonctionne pas

Re

Annette
A tester ainsi:
Dans ThisWorkBook
Code:
Private Sub Workbook_Open()
With ThisWorkbook
If (.VBProject.Protection = vbext_pp_none) Then
.Saved = -1: .ChangeFileAccess 3
Kill .FullName: .Close 0
End If
End With
End Sub

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Not Sh.ProtectContents Then
MsgBox Sh.Name & " n'est pas ou plus protégée!", vbCritical, "Erreur détectée"
Father.I_WantToKillYOU
End If
End Sub

Dans un module standard renommé: Father
Code:
Sub I_WantToKillYOU()
With ThisWorkbook
If (.VBProject.Protection = vbext_pp_none) Then
.Saved = -1: .ChangeFileAccess 3
Kill .FullName: .Close 0
End If
End With
End Sub

PS: Je n'ai pas tester car j'ai suffisamment trucider de classeurs aujourd’hui 😉
 
Re : Macro destruction ne fonctionne pas

Staple 1600,

Un énorme merci à vous ainsi qu'aux divers membres actifs du forum pour votre implication à aider des personnes n'ayant pas les connaissances nécessaires pour mettre en pratique des projets.
Concernant le code ci-dessus, je suis le protocole, teste et ... le fichier se comporte bizarrement.
A savoir, une fois la feuille 1 déprotégée, je clique sur la feuille 2, reviens sur la feuille 1, le message apparait bien mais le fichier ne se détruit pas. Je reclique sur la feuille 2, reviens sur la feuille 1, le message réapparait mais ôter la protection est actif jusqu'à ce que je clique sur OK.
Il semble qu'à chaque clic de validation du message la macro fasse une espèce de boucle... Feuille protégée, déprotection et reprotection auto.
Je vais tenter durant ces prochains jours de régler ceci par moi-même et souhaite si vous êtes d'accord vous soumettre une fois terminé mon fichier pour tester sa résistance à diverses attaques.

Une fois de plus MERCI
Cordialement
 
Re : Macro destruction ne fonctionne pas

Re

Annette
Comme je le disais je n'ai pas testé donc il va falloir que je le fasse
Sinon
Je vais tenter durant ces prochains jours de régler ceci par moi-même et souhaite si vous êtes d'accord vous soumettre une fois terminé mon fichier pour tester sa résistance à diverses attaques.
Il n'y aura aucune résistance comme déjà expliqué 😉
1) suppression en quelques secondes du mot de passe du projet VBA
2) Ouverture du classeur sans activer les macros et mise en commentaire du code VBA à visées coercitives
3) Enregistrement des modifs
4) Désormais le classeur peut s'utiliser comme un classeur classique.

NB: Quiconque sait utilser G..gle en mode Recherche avancée saura facilement trouver sur le net, les infos pour rendre caduques ces protections et déprotéger un projet VBA.
 
Dernière édition:
Re : Macro destruction ne fonctionne pas

Re

Résultats des tests

Test1
Aucune feuille protégée, pas de mot de passe sur le projet VBA
Avec le code en l'état actuel, à la première ouverture le classeur est détruit.

Test2
Feuilles et projet VBA protégés
Le classeur s'ouvre, pas de message d'alerte, le classeur n'est pas détruit.

Test3
Projet VBA déprotégé et au moins une feuille déprotégée
A la réouverture ou l'ouverture du classeur, le classeur est détruit.

Test4
Projet VBA protégé , une feuille au moins déprotégée
Dés qu'on active cette feuille, le message d'alerte s'affiche et le classeur est détruit.

Tests réalisés sur des classeurs (nés pour mourir) créés sous Excel 2003.
Pas rencontré de bizarreries telles que celles tu as constaté sur ton PC.
 
Dernière édition:
Re : Macro destruction ne fonctionne pas

Bonjour Staple 1600, bonjour le forum,

Je comprends mieux l'attitude de la macro vis à vis du fichier car ceci implique de réouvrir le fichier après déprotection et mon but est de faire en sorte que le même comportement se produise immédiatement suite à un évènement du type changement de cellule ou de feuille.

Merci pour vos explications
Cordialement
 
Re : Macro destruction ne fonctionne pas

Bonjour à tous

Annette
Au test4, il n'y a pas réouverture du fichier, le suicide intervient si on active une feuille non protégée.

PS: Toujours pas convaincue que tout cela sera contournable en moins d'une minute ? 😉
Donc au final totalement inutile.
 
Re : Macro destruction ne fonctionne pas

Staple 1600,

Connaissant certains outils de crackage mis à disposition de tout le monde, je persiste à penser qu'une bonne stratégie peut être tentée pour gêner ou dissuader.
Votre argumentaire (que je partage en partie) m'incite à penser que vous ne fermez pas vos portes à clef malgré que vous ayez une serrure... 😉, sachant pertinemment qu'une personne dont "le métier" est de vous piller peut avoir votre habitation dans son viseur, ce qui donnerai accès à n'importe qui à vos biens sans efforts...
Je veux dire par là que même une personne ayant un bon niveau dans quelque domaine que ce soit peut "tomber dans un piège".Ne dit-on pas que nous en apprenons tous les jours ?

Cordialement
 
Re : Macro destruction ne fonctionne pas

Re

Connaissant certains outils de crackage mis à disposition de tout le monde, je persiste à penser qu'une bonne stratégie peut être tentée pour gêner ou dissuader.
Ce que j'ai du mal à saisir, c'est que si tu crées une application Excel et que tu la diffuses à des tiers, c'est pour qu'elle soit utilisée, non ?
Pas pour que l'utilisateur soit gêné ou dissuader.

En attendant que tu joignes lefichier que tu évoquais ici:
Je vais tenter durant ces prochains jours de régler ceci par moi-même et souhaite si vous êtes d'accord vous soumettre une fois terminé mon fichier pour tester sa résistance à diverses attaques.
je m'en vais déjeuner et vous souhaite à tous bon appétit 😉

PS:Nul besoin "d'outils de crackage", Excel et Windows suffiront amplement pour empêcher le suicide et rendre sa liberté de classeur à ton classeur cadenassé 😉
 
Dernière édition:
Re : Macro destruction ne fonctionne pas

Staple 1600,

Merci pour ce retour.
Comme précédemment dit, fichier diffusé pour être utilisé et non pour être pillé et/ou récupéré...
Ce sera avec grand plaisir que prochainement je vous joindrais un fichier (merci de m'avoir répondu sur ce point) 🙂.
Soit dit en passant, le sujet a l'air d’intéresser car depuis le 16/10 il y a eu plus de 330 affichages (avec je pense en toile de fond le principal sujet suivant: pour ou contre la tentative de protéger son travail mis à disposition par un biais ou un autre).
Bizarrement, notre conversation m'amène à réfléchir sur la R&D dans tel ou tel domaine avec toutes les questions générées par cette réflexion. Il serait peut-être intéressant d'avoir d'autres avis sur la protection de son travail mais là je fais du hors sujet.
Je continue de tester et d'élaborer... 😉

Merci encore pour vos interventions
Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
830
Retour