Registriert seit: 14.07.2021
Version(en): Office365
Hallo Leute,
mich würde mal interessieren, ob jemand von euch zu folgendem Problem eine Lösung hat:
ich habe eine Excel-Datei gebastelt, die 3 Blätter enthält.
- Das erste Blatt beinhaltet personenbezogene Daten, die nur einem bestimmten Personenkreis (der Leitung) zugänglich sein sollen.
- Das zweite Blatt beinhaltet die gleichen Daten, allerdings anonymisiert, und darf daher von jedem Mitarbeiter eingesehen werden.
- Im dritten Blatt lasse ich per Makro den Username und den Computernamen des aktuellen Nutzers auslesen und jeweils in eine Zelle eintragen. Weiterhin beinhaltet dieses Blatt eine "WhiteList", also 6 Zellen, in denen bereits vorgegebene Usernames stehen, die Blatt 1 einsehen dürfen.
Mein Ziel ist es, dass die Datei OHNE MANUELLE PASSWORTEINGABEN oder Blattschutz auskommt auskommt und nur anhand des aktuell verwendeten Username im Abgleich mit der Whitelist automatisch beim Öffnen der Datei den Zugriff auf Blatt 1 zulässt oder eben nicht, wenn der aktuelle Username nicht auf der Whitelist steht. In dem negativen Fall soll nur Blatt 2 für alle einsehbar sein.
Hab ich das verständlich erklärt?
Geht sowas überhaupt?
Viele Grüße
Junjor
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo,
Zitat:Geht sowas überhaupt?
nicht wirklich. Leider lässt sich alles, was Excel an "Schutzmaßnahmen" bietet leicht aushebeln. Schützenswerte daten sind da nicht gut aufgehoben.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter,
der Misserfolg ist ein Waisenkind
Richard Cobden
Registriert seit: 06.12.2015
Version(en): 2016
Hallo,
wie bereits gesagt, Excel ist für den Schutz von vertraulichen Daten ungeeignet, insbesondere wenn erfahrene User Zugang erhalten.
Es ist möglich mit dem "Workbook_Open()"-Event Environment-Variable, z.B. den Usernamen abzufragen. Wenn der Programmierer diese Namen kennt, kann VBA darauf reagieren.
Besser ist es, den Berechtigten einen Code in die Registry zu schreiben (VBA: SaveSetting) und diesen String zum entschlüsseln zu nutzen.
mfg
PS: Datei in *.PS1 umbenennen und mit Powershell ISE öffnen. Der Pfad muss angepasst werden.
Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:1 Nutzer sagt Danke an Fennek für diesen Beitrag 28
• junjor
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
hier mal was als Ansatz. Wichtig ist eben auch, dass man beim Speichern einiges zurück setzt und dem Admin oder wem auch nach dem Speichern wieder Zugriff gewährt. Das hatte ich in dem Projekt mit BeforeSave und AfterSave geregelt.
Beim Thema Schutz muss man wissen, was man will bzw. was ein Aushebeln für die Firma oder den Mitarbeiter bedeutet.
Der Schutz ist zumindest geeignet, einen Mitarbeiter für das Aushebeln zur Verantwortung zu ziehen, wenn man es ihm nachweisen kann.
Code:
'DieseArbeitsmappe
'******************************************
Option Explicit
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
If Range("Admin") > 0 Then
Sheets("Tabelle1").Columns("...").EntireColumn.Hidden = False
Else
Call UserVisible
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets("Tabelle1").Activate
Call CopyUserData
Sheets("Tabelle1").Columns("...").EntireColumn.Hidden = True
End Sub
Private Sub Workbook_Open()
Sheets("Tabelle1").Activate
Range("Benutzer").Value = UCase(Environ("username"))
If Range("Admin").Value > 0 Then
Sheets("Tabelle1").Columns("...").EntireColumn.Hidden = False
Call FormelnEin
Else
Call UserVisible
End If
Call scrollen
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• junjor
Registriert seit: 14.07.2021
Version(en): Office365
Vielen Dank schonmal für die schnellen Antworten!
Dann muss ich mein "Schutzkonzept" nochmal durchdenken... danke für die Hinweise!
Aber abgesehen davon, habe ich den Ansatz von "Schauan" noch nicht ganz verstanden und weiß nicht damit umzugehen...
Du rufst da mit "Call" ja noch jede Menge weitere Module auf, die ich noch gar nicht habe.
Wo genau ist diese "Admin"-Range definiert? und das Zurücksetzen vor und nach dem Speichern verstehe ich auch nicht.
Aber diese Verständnisprobleme sind mit Sicherheit auf meine eher geringen VBA-Anfängerkenntnisse zurückzuführen. Insofern bräuchte ich zu diesem Code etwas mehr Hilfe bzw. Erläuterungen. Es würde mich schon interessieren, wie das funktioniert.
Dennoch habe ich die Gesamtproblematik des Schutzes verstanden und danke erstmal allen hier!
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
Also, wenn du länger an einer Datei arbeitest solltest du ja ab und zu mal speichern.
Wenn Du das tust und dabei sind z. B. alle Blätter sichtbar braucht man die Datei nur ohne Makroausführung starten und man sieht alles.
Deswegen sollte man auch beim Speichern alles was nicht jeder lesen sollte ausblenden.
Wenn Du nun weiter arbeiten willst, sind die Daten aber ausgeblendet. Die müssen also wieder eingeblendet werden.
Das kann man mit einem Button starten, oder eben automatisch mit AfterSave.
Wenn ich nun beim Öffnen Code zum Prüfen und einblenden brauche und für AfterSave auch, dann schreibe ich den nicht 2x sondern in ein extra Makro und starte das hier im Beispiel mit Call..
Irgendwo, bei mir auf einem ausgeblendeten Blatt (xlveryhidden) stehen die User, und in einer Zelle, die ich Admin genannt habe, selbiger.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• junjor
Registriert seit: 14.07.2021
Version(en): Office365
Hallo Schauan,
vielen Dank für die Erklärung.
Das hat bei mir viel Licht ins Dunkel gebracht!
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
das Projekt solltest Du auch schützen, ansonsten kann ein user das auf xlveryhidden gesetzte Blatt dort auf visible setzen.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• junjor