Macro destruction ne fonctionne pas

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 :eek:.

Merci pour vos suggestions
Cordialement
 

Pièces jointes

  • Copie de Essaisuicide.xlsm
    15.5 KB · Affichages: 43
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Macro ne fonctionne pas

Bonjour Annette ,

Bon je crois pas qu'il faille encourager le suicide , lol

mais bon ,

je pense qu'il faudrait mettre ton déclencheur sur le changement de feuille ,

sur la désactivation par exemple :

Bon pour le reste , j'ai pas testé la résistance de la corde , ni les ravages éventuels du code contenu dans suicide

Code:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
'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
 

Annette

XLDnaute Occasionnel
Re : Macro ne fonctionne pas

Bonjour camarchepas,

Merci pour votre réponse rapide et votre intérêt à mon petit problème.
J'ai mis votre proposition en fonction et me suis aperçue qu'elle ne fonctionnait qu'à moitié, je m'explique.
Toutes les feuilles ainsi que le projet VB sont protégés.
Le but de la manoeuvre est de faire disparaitre le fichier via la macro suicide lorsque une seule des feuilles et/ou le projet VB est déprotégé (vrai mot de passe ou d'un code) à l'aide d'un évènement de type déplacement...
Votre solution fonctionne si la protection VB a sauté et si retour sur excel... délai trop long car le rôle de la macro suicide est de rendre le code et les formules inaccessibles.

Merci pour vos propositions.
Cordialement
 

Annette

XLDnaute Occasionnel
Re : Macro destruction ne fonctionne pas

Pour les personnes voulant tenter d'élucider un autre type de problème voici une variante ( qui ne fonctionne pas non plus avec moi :mad: ).

Merci pour vos suggestions
Cordialement
 

Pièces jointes

  • Copie de Essaisuicide2.xlsm
    18.3 KB · Affichages: 46

Staple1600

XLDnaute Barbatruc
Re : Macro destruction ne fonctionne pas

Bonsoir à tous

Pour infos
Votre solution fonctionne si la protection VB a sauté et si retour sur excel... délai trop long car le rôle de la macro suicide est de rendre le code et les formules inaccessibles.

Annette
J'espère que tu sais que la protection sur Excel est plus qu'illusoire.
1) Il suffit d'ouvrir le classeur sans activer les macros (ou dans Libre Office)
2) Si le code VBA présent n'est là que pour la protection, il suffit ensuite de l'enregistrer en *.xlsx
3) On trouve en de nombreux endroits sur le net :
• infos, code VBA pour supprimer la/les protection(s) d'un classeur.
(Protection feuilles/Classeur et protection Projet VBA)
 

Annette

XLDnaute Occasionnel
Re : Macro destruction ne fonctionne pas

Bonjour Staple1600,

Merci pour vos informations qui sont malheureusement une réalité.
Le but est "de retarder l'échéance" et dissuader grâce à un protocole (empêcher l'ouverture du classeur si macro non activées, certificat numérique à valider ... et de plus, si le classeur est enregistré en *.xlsx les macros disparaissent d'elles mêmes me semble t-il).
Mais je ne me fais pas d'illusions car si réellement une personne veut entrer ... Quoiqu'il en soit, je souhaite pouvoir arriver à faire fonctionner l'une ou l'autre procédure.

Merci pour votre contribution
Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Macro destruction ne fonctionne pas

Re

et de plus, si le classeur est enregistré en *.xlsx les macros disparaissent d'elles mêmes me semble t-il).
J'ai bien précisé si le code VBA ne sert qu'à la protection.
Si les macros servent à autre chose, évidemment l'enregistrement en *.xlsx ne se pose pas.

Le but est "de retarder l'échéance"
C'est dépenser beaucoup d'énergie pour au final un résultat vain, non ?

Qu'a ton classeur de si spécial pour qu'il nécessite une telle protection ???

NB: Il suffit d'ouvrir ton classeur sans activer les macros, ensuite on supprime la protection du projet VBA
On mets tous le code VBA de protection en commentaires, on enregistre, on ferme , on réouvre.
Et le classeur est utilisable sans aucune restriction.
 
Dernière édition:

Annette

XLDnaute Occasionnel
Re : Macro destruction ne fonctionne pas

Staple 1600,

J'apprécie vos remarques pertinentes et reste lucide vis à vis de la protection excel mais je souhaite néanmoins "tenter de retarder" par des moyens mis à ma disposition "le pillage ou torpillage" de mon travail que je vais mettre à disposition une fois terminé.
Quand à l'énergie dépensée, je suis pour tenter plutôt que subir...

Merci pour votre contribution
Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Macro destruction ne fonctionne pas

Re

Si tu es salariée, ton travail (ou plutôt ton classeur) appartient à ton employeur.
(voir les sites juridiques à ce sujet)

Après avoir longuement cherché, ici et ailleurs

Donc qu'en conclure ? que l'info n'est pas disponible sur le net.

PS: je vais voir ta dernière PJ.R

EDITION
: Tu as essayé en utilisant Open plutôt que Activate
Code:
Private Sub Workbook_Open()
'Si le fichier est déprotégé -> suicide , le fichier disparait totalement
If ThisWorkbook.VBProject.Protection = False Then
Call Module1.Suicide
'Si la date de péremption est dépassé représenté ici par DateSerial(2009, 4, 8) -> déprotection du fichier + suicide
ElseIf Date > DateSerial(2009, 4, 8) Then
Call UnprotectVBProject(ThisWorkbook, "toto")
End If
End Sub
Supprime l'autre procédure dans ThisWorkBook

NB
: Tu as essayé de protéger en mettant un mot de passe à l'ouverture du classeur ?
Protection beaucoup plus difficile à lever.
 
Dernière édition:

Annette

XLDnaute Occasionnel
Re : Macro destruction ne fonctionne pas

Staple 1600,

Merci pour votre retour.
Le classeur n'est pas destiné à mon employeur et comme dit précédemment mes connaissances en VB sont limitées et je vous concède que lorsque l'on sait quoi chercher on trouve mieux. La protection du classeur est une bonne idée mais ne sert à rien car il va être diffusé pour s'en servir.
En ce qui concerne la modification de l'évènement, ceci ne change pas grand chose pour moi car dès l'ouverture du classeur j'ai le message suivant:Erreur d'exécution '91' variable objet ou variable bloc with non définie.
Avez-vous la même erreur ?
Je ne sais vraiment pas comment m'en sortir sans aide.

Merci pour vos suggestions
Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Macro destruction ne fonctionne pas

Re


Ce n'est pas ce que j'ai dit
Je parle de ceci
L’œuvre est un logiciel : ce logiciel doit avoir été réalisé pendant les heures de travail du salarié et entrer dans le cadre de l’activité de l’employeur. Si ces conditions sont réunies, le code de la propriété intellectuelle prévoit une exception : c’est l’employeur qui est le titulaire des droits d’auteur.
source

PS: Pas de message d'erreur chez moi. Mais pour autant le classeur n'a pas décidé d'en finir. Il est toujours vivant ;)




 
Dernière édition:

Annette

XLDnaute Occasionnel
Re : Macro destruction ne fonctionne pas

Correction:

Le petit programme n'est ni destiné à mon employeur ni à l'environnement direct de mon travail et son élaboration n'a pas été effectuée durant mes heures de travail.
En ce qui concerne ma demande initiale je n'arrive pas à comprendre que vous n'ayez pas d'erreur et bizarrement lorsque je lance la macro suicide manuellement elle fonctionne mais ce n'est plus un suicide mais bel et bien un meurtre :p.
Je souhaite seulement la faire fonctionner automatiquement lors d'un évènement (déprotection) mais n'arrive pas à comprendre le processus qui bloque.

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Macro destruction ne fonctionne pas

Re

Avec ce petit bout de code, le classeur nous quitte dans un dernier râle à l'ouverture de celui-ci.
Code:
Sub Workbook_Open()
MsgBox "Adieu Monde Cruel!", 16, "Arrrrrggggghhhhhhhhhhhhh."
With ThisWorkbook
.Saved = -1: .ChangeFileAccess 3
Kill .FullName: .Close 0
End With
End Sub

Test OK sur mon PC

Évidemment si tu mets ce bout de code dans la version que tu diffuses, l'utilisateur final (qui ne sait pas ouvrir un classeur sans activer les macros), n'aura pas le temps de tester ton fichier...:rolleyes:
 

Annette

XLDnaute Occasionnel
Re : Macro destruction ne fonctionne pas

Excellent,

C'est précisément le comportement que je souhaite que le classeur adopte MAIS UNIQUEMENT LORS DE LA DEPROTECTION du projet VB et la classe serait aussi qu'il fasse de même lors de la déprotection d'une feuille.
Est-ce possible et si oui pourriez-vous me faire bénéficier de vos connaissances afin que je puisse finaliser en partie mon projet ?

Merci pour votre aide
Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Macro destruction ne fonctionne pas

Bonjour à tous

Annette
Mes connaissances m'inclinent à penser qu'il est illusoire de vouloir protéger un classeur Excel et que cela peut même être contre-productif.
Il est à mon sens plus bénéfique de valoriser son savoir-faire en discutant et cernant les choses avec "le/les décideurs" ou employeur.
Si l'utilisateur final qui utilise ton outil est un utilisateur lamba, il est plus simple et friendly d'assurer un suivi/mise à jour/formation/coopération que de restreindre l'utilisation d'un outil.

Je passe donc le relais ici à d'autres membres du forum pour tenter l'illusoire sécurisation/protection d'une appli Excel .
(ou alors il passer par des solutions logicielles tiers mais ce qui implique alors un cout financier additionnel)

[aparté]
Dans une des anciennes boites où j'ai bossé, quand je développais une appli, je négociais avec le boss ainsi:
Une réunion d'information avec tous les utilisateurs de l'appli
Explications modalités de fonctionnement et de mises à jour.
Si un utilisateur modifiait l'appli, il était prévu qu'il devra s'en expliquer à sa hiérarchie.
(Car je fournissais au boss le code VBA original avec ma patte, donc il était facile de voir les altérations qui n'étaient pas de ma main)

Bilan: Aucune hiérarchie ne fut jamais déranger.
Et dans la boite, tout le monde savait que j'étais l'auteur de l'appli et comme l'appli rendait bons nombres de services, personne ne songeait à faire autre chose que de l'utiliser pour faire son taf.

[/aparté]
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 499
Messages
2 088 999
Membres
104 001
dernier inscrit
dessinbecm