Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Anmeldung per Username
#1
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
Antworten Top
#2
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
Antworten Top
#3
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:
  • junjor
Antworten Top
#4
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. Confused


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:
  • junjor
Antworten Top
#5
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!
Antworten Top
#6
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:
  • junjor
Antworten Top
#7
Hallo Schauan,

vielen Dank für die Erklärung. 
Das hat bei mir viel Licht ins Dunkel gebracht!   Thumps_up
Antworten Top
#8
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:
  • junjor
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste