Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1256to1260
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bestimmte Funktionen per Passwort schützen

Bestimmte Funktionen per Passwort schützen
Jenny
Hi Ihr,
ich habe eine Datei mit sehr vertraulichen (Firmen-)Daten, bei der ich sicherstellen möchte, dass diese nur von bestimmten Usern per Email verschickt werden kann.
Gibt es in VBA irgendeine Möglichkeit, ein Passwort abzufragen, sobald jemand bestimmte Änderungen "außerhalb" der eigentlichen Tabelle vornehmen will, z.B. die folgenden ?
'- umbenennen der Datei
'- verschicken der Datei als Email-Anhang
'- ausdrucken der Datei
Falls das einfacher ist, wäre alternativ dazu auch eine Verknüpfung mit dem Login möglich, da ich den per Environ auslese.
Freue mich über jeden Tipp ! :-)
LG und vielen Dank Euch im Voraus,
Jenny
AW: Bestimmte Funktionen per Passwort schützen
31.03.2012 23:32:08
Reinhard
Hallo Jenny,
gegen wen willst du schützen?
Mit was, Vba? Bedenke wenn jmd. die Mappe mit Open Office öffnet nützt dir kein Excel-Makro.
Und wenn das Passwort im Code hinterlegt ist so sieht man es.
Und was sollte irgendjmdn. daran hindern da diese xls per Outlook als Anhang zu verschicken?
Gruß
Reinhard
AW: Bestimmte Funktionen per Passwort schützen
31.03.2012 23:47:38
Jenny
Hallo Reinhard,
vielen Dank für Deine Rückmeldung !
OpenOffice ist keine Gefahr, da nicht verfügbar.
Passworte, die im Code hinterlegt sind, sind auch ok, da man dafür zumindest etwas an Wissen haben muss.
Was ich gerne (per VBA) verhindern möchte, ist, dass ein Mitarbeiter die Datei so wie sie ist per Email / Outlook aus der Firma nach draußen verschickt, da in dieser Datei wirklich sehr viele kritische und vertrauliche Daten enthalten sind, ich sie aber gleichzeitig auf einem Laufwerk mehreren Dutzend Leuten zur (Lese-)Nutzung zur Verfügung stellen muss.
Hilft Dir das weiter ?
LG,
Jenny
Anzeige
AW: Bestimmte Funktionen per Passwort schützen
01.04.2012 00:35:38
Reinhard
Hallo Jenny,
okay. Hajo hat auf seiner Seite:
http://hajo-excel.de/vba_nur_makros_allgemein.htm
schau da mal links bei in der Liste bei "nur mit Makros"---"Allgemein", da ist eine mappe die nur mit aktivierten Makros geöffnet werden kann.
Genauer, das Prinzip ist, alle wichtigen Blätter werden per Vba beim Mappenschließen
ausgeblendet sodaß sie ohne Vba nicht mehr sichtbar gemacht werden können.
Wird ohne aktivierten Makros die mappe geöffnet so sieht der User nur eine unwichtige Seite.
Wenn dadurch als Makrozulassung erzwungen wird so kannst du dann schon den Windows und oder den
Excelusernamen abprüfen oder ein Passwort.
Je nachdem werden dann die intimen Seiten angezeigt oder nicht.
Ich habe jetzt hier grad XL 2000, hat denn XL 2010 im Menue einen Punkt wo man die Mappe
mailen kann? Wenn ja so kann man den natürlich per Vba deaktivieren.
Auch die Druckfunktionalität.
Umbenennen geht ja auf Excelebene nur durch "Speichern unter...", auch das kann man deaktivieren.
Das nützt aber alles nix wenn jmd Outlook startet und die mappe vermailt oder im Explorer
umbenennt.
Was geht ist beim Mappenstart mit Vba zu überprüfen ob der Mappenname noch korrekt ist.
Übrigens, wenn da die Leute eh nur lesen dürfen vielleicht mache doch eine PDFs von den Blättern.
Ich glaube mit dem Original von Adobe kannste da das ausdrucken untersagen.
Hilft dir das erstmal weiter?
Gruß
Reinhard
Anzeige
AW: Bestimmte Funktionen per Passwort schützen
01.04.2012 00:41:49
Jenny
Hallo Reinhard,
vielen vielen Dank, dass Du Dir so viel Mühe machst ! :-)
Also, das mit dem automatischen verstecken bestimmer Blätter je nach User-Login hatte ich schon integriert (VeryHidden..), so dass alle anderen User bei mir bereits nur noch eine harmlose Seite sehen.
Was sehr gut klingt, ist Dein Hinweis, beim Mappenstart die Dateinamen (oder Pfad ?) zu überprüfen und die Email- und Druckfunktion zumindest in Excel zu deaktivieren.
Weisst Du, mit welchen Codes das funktioniert ?
LG,
Jenny
AW: Bestimmte Funktionen per Passwort schützen
01.04.2012 01:13:41
Reinhard
Hallo Jenny,
Im Modul DieseArbeitsmappe in Workbook_open kannst du mit
Thisworkbook.path
und
Thisworkbook.name
schon mal die zwei überprüfen.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cancel = True
End Sub

läßt kein Drucken zu. Du könntest sogar in die Prozedur Code einbauen der dich anmailt und dir
sagt wer da grad zu drucken versucht.
Da ich den Auswahlpunkt Emailen nicht habe weiß ch nicht wie man den Punkt per Vba
anspricht um ihn zu deaktivieren.
Mit dem Wissen kann man ihn deaktivieren (wird grau=nicht anwählbar) oder ganz verschwinden lassen.
Das wäre dann so eine Codezeile:
CommandBars(1).Controls("Datei").Controls("Drucken...").Enabled = False
Beachte bitte die anderen Antworten.
Gruß
Reinhard
Anzeige
AW: Bestimmte Funktionen per Passwort schützen
01.04.2012 01:20:48
Jenny
Hallo Reinhard,
vielen Dank !
Das mit dem Drucken ist super und werde ich auf jeden Fall nutzen (die Email-Info probiere ich auch aus).
Zur Überprüfung des Dateipfades:
Heißt das nicht, dass ich sagen kann, sobald der Pfad nicht mehr der gleiche ist, geht gar nichts ?
Wäre damit nicht schon das verschicken per Email obsolet, da sic hier ja in jedem Fall auch der Pfad ändern würde ?
LG
Jenny
Sicher, das habe ich bereits in dem von dir ...
01.04.2012 02:00:26
dir
…ignorierten Beitrag angedeutet, Jenny.
Ich mache dass auch so, fremde Umgebung → Pfad stimmt nicht mehr mit gemerktem überein → obfusziertes Kill-Pgm startet → nur 1.Blatt bleibt stehen, alle anderen gelöscht, einschl dem VeryHidden, auf dem das Kill-Pgm steht, dessen Aufruf aus Workbook_Open erfolgt → Mappe lässt sich dann deshalb in Xl weder mit noch ohne Makroaktivierung öffnen.
Ansonsten sind da noch Überprüfung auf die öffnende Software → nicht Xl → gleich Schluss.
Wdn die Makros nicht aktiviert → Warnhinweis (in dem Fall bei dir noch alle Blätter verbergen wie du es ja bereits getan hast, mit meiner Datei kann man ohne aktivierte Makros nichts anfangen → würde bei sensiblen Daten aber nicht reichen!).
Außerdem kann man sich mit relativ einfachen Mitteln eine Datenverschlüsselung basteln, die ohne Verbindung zu einer Basisdatei nur Fehlerwerte u/o willkürliche Werte enthält. Ein Bsp von mir für so etwas müsste sich ggf im Archiv finden lassen, kann dir aber kein Stichwort sagen, sondern nur, dass das eine hochgeladene Datei war und es sicher schon 2-3 Jahre her ist.
Eine andere Methode wäre es, Tabellendaten in ein Datenfeld besonderer Form zu laden, das in Xl nur als #WERT! angezeigt wdn kann. Das könnte dann bei entsprechender Berechtigung und bestehender (Fern-)Verbindung zu den Originaldaten in lesbare Form umgesetzt wdn.
Du siehst, man kann 'ne Menge machen, man muss bloß eine möglichst ausgefallene Idee haben, auf die so schnell keiner kommt und vor allem — sie muss für dich mach- und organisatorisch umsetzbar sein. In so etwas würde ich immer nur so viel Leute wie unbedingt nötig einweihen! Deshalb hier auch nichts Weitergehendes, nur diese Anregungen. ;-)
Luc :-?
PS: Übrigens, Reinhard hat schon mal das erwähnte obfuszierte KillPgm gesehen — steht auch im Archiv, nutzt dir aber nicht direkt, sondern ggf nur als Bsp. ;->
Anzeige
AW: Sicher, das habe ich bereits in dem von dir ...
01.04.2012 07:50:04
dir
Hi Luc,
vielen Dank und sorry, ich hatte nicht vor, einen Beitrag zu ignorieren - die Zeit hat gestern nur noch nicht für alle Emails gereicht. :-)
Dein Beitrag klingt super und ist genau das, wonach ich gesucht hatte, v.a. im Bezug auf die Überprüfung des Pfades.
Kannst Du mir hier weiterhelfen oder einen Ansatz für den Code geben ?
Ich denke, für meine Zwecke wäre alleine schon die Überprüfung des Pfades und ggf. des User-Logins schon ein sehr guter Start.
LG und nochmals vielen Dank für die interessanten Erklärungen, :-)
Jenny
die Sicherheit von Excel ist scheinheilig !
01.04.2012 00:44:50
Excel
Hi zusammen
Zitat:
Genauer, das Prinzip ist, alle wichtigen Blätter werden per Vba beim Mappen schließen
ausgeblendet sodaß sie ohne Vba nicht mehr sichtbar gemacht werden können.

Dann umgeht ein versierter Nutzer!
Mann/Frau sollte mal langsam verstehen das in Excel N I C H T S sicher ist !!
Gruß Matthias
Anzeige
AW: die Sicherheit von Excel ist scheinheilig !
01.04.2012 00:50:11
Excel
Hallo Matthias,
das ist ok und iO - es geht nicht darum, die Datei vor Profis, sondern vor Laien zu schützen, da es unter den Mitarbeitern, die darauf Zugriff haben, zum Glück keine Excel / VBA-Profis gibt. ;-)
LG
Jenny
Da es sich um Daten handelt, die geschützt ...
01.04.2012 00:43:24
Luc:-?
…wdn müssen, Jenny (& Reinhard),
kommt eigentl in 1.Linie eine spezielle Kryptisierungssoftware infrage, die sich deine Firma dann halt leisten muss! In 2.Linie könntest du auch etwas mit VBA machen, was dazu führt, dass sich die Datei selbst zerstört, wenn sie „in fremder Umgebung zum Leben erwacht“.
Da stellt sich mir aber die Frage, ob du dir das mit „bescheidenen VBA-Kenntnissen“ zutraust; ansonsten kannst du mal an sehr gut versteckte Dateipfade und Passworte denken. Den PgmCode, der die dann überprüft resp verwendet, musst du natürlich auch so abfassen, dass er nur sehr schwer zu verstehen ist. So etwas nennt man obfuszieren.
Auf diesem Gebiet gibt's auch Firmen, die Software anbieten, die aus normalem Code mit solchen Methoden sog Crunch-Code erzeugt. Allerdings dürfte hier ggf schon die vbFkt CallByName in Verbindung mit einer eigenen Kryptisierungsfkt (udF) für die verwendeten Klartexte ausreichen, denn es geht ja nur darum, bestimmte Codeteile unverständlich zu machen.
Gruß + schöSo, Luc :-?
Anzeige
AW: Da es sich um Daten handelt, die geschützt ...
02.04.2012 09:27:55
Jenny
Hallo Luc,
vielen Dank nochmal für Deine Tipps ! :-)
Kannst Du sagen, wie ich den Pfad überprüfen und bei falschem Pfad bestimmte Blätter bzw. deren Code löschen kann ?
Das wäre schon eine riesen Hilfe für den Anfang.
LG und vielen Dank im Voraus,
Jenny
Das setzt voraus, dass deine Datei immer ...
02.04.2012 20:34:18
Luc:-?
…unter dem gleichen Pfad zu finden ist, Jenny!
Den kannst du dann 1malig auf einem verborgenen Objekt speichern, am besten auf einem, das nicht mal bemerkt wird, wenn jemand alle Objekte sichtbar macht, also unter einem anderen oder als winziges Teilelement einer Objektgruppe und da ggf auch nur als alternativer (Web-)Text. Sieh dir dazu mal die Eigenschaften von Autoformen an → was du dann machst, bleibt deiner Fantasie überlassen. ;-)
Den Pfad kannst beim Ereignis Workbook_Open mit Me.Path bzw, falls das einschl Dateiname sein soll (wäre besser, dann aber auch den Namen nicht ändern!), mit Me.FullName auslesen. Falls dein geheimer Speicherort noch leer sein sollte (falls das .AlternativeText sein sollte, dafür sorgen, dass da kein Autotext drin steht → diesen einmalig manuell löschen sollte reichen), speicherst du das da rein, ansonsten vergleichst du die Inhalte. Stimmen sie nicht überein, alle Blätter auswählen und löschen → eines muss aber stehen bleiben, sonst klappt das nicht. Wenn kein Blatt dafür unverfängl genug ist, kann ein leeres Blatt vorher hinzugefügt wdn. Mit den Blättern wird auch deren Code gelöscht. Mit dem Code in einem allgemeinen Modul wird man in deinem Fall ohne Datenblätter kaum etwas anfangen können, das kann also stehen bleiben, falls vorhanden.
Besonders clever dürfte es sein, das Pgm, das das Löschen bewerkstelligt nicht direkt in die Ereignisprozedur Workbook_Open zu integrieren, sondern nur von dort aus aufzurufen. Du kannst das dann auch als Funktionsprozedur schreiben, die scheinbar nur True oder False zurückgibt (FullName-VglsErgebnis) → bei einem von beiden geht's normal weiter, beim Gegenteil wird die Mappe geschlossen und ggf Xl beendet.
Die KillFkt bekommt einen unverfänglichen Namen und wird im Dokument-Klassenmodul eines ggf garantiert gelöschten Blattes notiert. Wird dann unter Zusatz des internen Blattnamens aufgerufen, also zB als Fkt mit folgd Zeile in der Workbook_Open-Proz: NVgl = Tabelle2.VglFunk(xn, yn), wobei du natürlich auch Argument-Dummies verwenden kannst, wenn ja ohnehin klar ist, wo die Fkt die Vglswerte herbekommt (verwirrt dann noch mehr!). In der Fkt verwendest du am besten die vbFkt CallByName, um sicherheitsrelevante Abfragen zu machen. Das hat den Vorteil, das bestimmte Eigenschaftsnamen als Texte verwendet wdn können. Texte haben den Vorteil, dass man sie auch verschlüsseln kann. Dazu müsstest du dir eine kleine Fkt ausdenken, die die Texte einerseits verschlüsselt — die Verschlüsselungen kannst du dann direkt als Konstanten in die KillFkt schreiben, und andererseits solche Verschlüsselungen wieder in Normaltext umwandelt. Die Fkt mit der verschlüsselten Konstante als Argument verwendest du dann in CallByName anstelle des Klartextes eines Eigenschaftsnamens. Dann musst du noch dafür sorgen, dass niemand die Verschlüsselungsfkt anhalten - das ginge bspw, indem du sie evaluierst → Evaluate("Krypt(…)") - und auch nicht in einer Zellformel verwenden kann (Application.Caller abfragen, muss Fehler, darf kein Range sein!).
Durch das Löschen des Blattes mit der KillFkt bleibt Xl beim nächsten Start hängen, weil Blatt und Fkt fehlen. Auch, wenn die Mappe mit deaktivierten Makros (unter Xl) geöffnet wird, klappt das nicht, weil Xl feststellt, dass etwas nicht stimmt und ggf einfach abstürzt.
Viel Spaß und Erfolg, Luc :-?
Anzeige
OT: Hi Luc-und das bei VBA bescheiden ;-) owT
02.04.2012 20:48:14
robert
Ich hatte sie gewarnt und Alternativen genannt,...
03.04.2012 01:06:49
Luc:-?
…aber sie wollte es ja unbedingt wissen, Robert,
viell spornt sie das an, diesen Status hinter sich zu lassen. ;-)
Aber dir sagt das wohl auf jeden Fall mehr, denn du kennst ja schon etwas von dem, wovon ich spreche.
Gruß Luc :-?
Achso, außerdem hättest du dann weiter ...
03.04.2012 01:16:31
Luc:-?
…oben auch gleich 'ne Anwendung für MxSlice, Robert.
Luc :-?
AW: Das setzt voraus, dass deine Datei immer ...
03.04.2012 01:00:17
Jenny
Hallo Luc,
vielen Dank für Deine Hilfe und die ausführliche Erklärung !! :-)
Das wird mich sicher ein wenig Zeit kosten, ich werde es aber auf jeden Fall die nächsten Tage probieren und schauen, wie weit ich damit komme. ;-)
LG und Dir noch einen schönen Abend
Jenny
Anzeige
Na, dann, 3xtoi, könnte aber länger dauern! orT
03.04.2012 01:19:34
Luc:-?
Dito Gruß Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige