VBE Evenet beim Versenden, extra sicheres File
27.01.2016 11:57:26
pade
wie in so vielen Firmen, haben auch meine Kollegen mittlerweile Tools, mit denen der Blattschutz leicht geknackt werden kann. Da das immer mal wieder eine Menge unliebsame Arbeit verursacht, habe ich über VBA zusätzliche Hürden eingebaut. Natürlich mit der Annahme, dass die Kollegen nicht des VBA mächtig sind und somit erst gar nicht auf die Idee kommen ein PW zum VBA Projekt zu knacken und meine Hürden so einfach umegehen könnten.
1. Es gibt ein Ereignis, das bei der Selektion einer Zelle prüft, ob das Blatt geschützt ist und welcher Windows user eingeloggt ist. Sollte das bei entsperrtem Blatt nicht meine Wenigkeit sein, flattert eine Email vom Bösewicht in mein Postfach mit dem Betreff: Authorization request.
2. Vor dem Speichern startet ein Event, dass alle zur Bearbeitung nötigen Arbeitsblätter auf VeryHidden setzt und stattdessen ein Arbeitsblatt mit dem Hinweis "Makros must be enabled" einblendet. So wird verhindert, dass man das Sheet ohne Makros überhaupt bearbeiten kann. Nach dem Speichern werden die Ein- und Ausblendungen direkt wieder umgekehrt und der User kann weiter arbeiten. Öffnet jemand das gespeicherte Blatt ohne Makros sieht er nur den Hinweis. Wenn er dann die Makros aktiviert werden wieder die nötigen Blätter eingeblendet.
Nun habe ich folgende Schwachstelle des Konzepts entdeckt. Wenn man das File beim Bearbeiten versendet, greift das Makro nicht, welches die Blätter versteckt. Insofern kann es der Empfänger öffnen ohne Makros aktiviert zu haben. Somit kann er den Schutz knacken, ohne dass ich es merken würde.
Mein Lösungsansatz wäre gewesen auch beim versenden der Datei aus Excel das Event zu starten, welches die Blätter versteckt, aber da bleib die Suche bisher Ergebnislos. Hat hier jemand eine Idee?
Sollten Code Bausteine von Interesse sein einfach nachfragen
Danke und Grüße
pade
PS: Ich gebe mich nicht der Illusion hin, etwas 100% sicheres basteln zu können. Aber die Motivation der User hat auch Ihre Grenzen. Moralische Verwerflichkeit mal ganz außen vor gelassen.