Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zugriffsrechte für Windows-User mit Rechtetabelle

Forumthread: Zugriffsrechte für Windows-User mit Rechtetabelle

Zugriffsrechte für Windows-User mit Rechtetabelle
16.06.2009 14:13:51
Thorsten
Hallo liebe Excel-Gemeinde,
nach langem Suchen mal wieder nichts gefunden, was mich allein auf die Lösung bringt.
Ich möchte anhand einer Zuordnungstabelle auf einem separaten Blatt die Zugriffsrechte eingeloggter Windowsuser zu bestimmten Bereichen (mit Namen versehen) auf einem anderen Blatt zuordnen.
Dazu soll es noch einen Administrator geben der als einziger das Zuordnungsblatt sehen und bearbeiten darf.
Ich hab da mal was vorbereitet :)
https://www.herber.de/bbs/user/62471.xls
Vielen Dank im Voraus!
Gruss
Thorsten
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zugriffsrechte für Windows-User mit Rechtetabelle
16.06.2009 14:31:49
Matze
Hallo Thorsten.
Hatte mal eine sehr ähnliche Aufgabe.
Das Hauptproblem war die Abfrage des angemeldeten Benutzer.
Mit VBA.Environ("Username") kann man den User abfragen.
Z.B.:

Sub BenutzernameAbfragen()
Sheets(1).Range("A1").Value = VBA.Environ("Username")
End Sub


Ich nehme an, das ein Benutzer zur Zeit die Mappe geöffnet hat?
Andernfalls ginge da was mit "Arbeitsmappe Freigeben". Ist aber hackelig
Grundsäzlich bist Du mit der Tabelle schon richtig.
Über den Blattschutz, Blatt ausblenden und Gesperrte Zellen kann man die Berechtigungen dann festlegen.
Die Mappe muss erstmal komplett gesperrte Zellen haben und dann mit der Abfrage des Users die Berechtigungen setzten. Denn sonst kann ja einer die Makros deaktivieren und sich der Tabelle bedienen!
Hoffe Dir geholfen zu haben, Matze.

Anzeige
AW: Zugriffsrechte für Windows-User mit Rechtetabelle
16.06.2009 14:51:22
Thorsten
Ok - verstanden. Ich werde das mal für die Admingeschichte machen. Das Blatt soll dann IRGENDWIE nur sichtbar werden, wenn einer die Tabelle öffnet der als Admin deklariert ist.
Eigentlich werden die Anwender nicht versuchen den Schutz zu umgehen. Es soll im wensentlichen verhindert werden, dass Änderungen auch ausversehen in Bereichen gemacht werden, von denen einer keine Ahnung hat. In sofern wäre die Zuordnung der SChreibrechte über die Tabelle sehr hilfreich. Und da weiss ich leider nicht wie es geht.
Anzeige
AW: Zugriffsrechte für Windows-User mit Rechtetabelle
16.06.2009 15:50:58
Ramses
Hallo
Warum so kompliziert ?
Wenn du Office 2007 hast, dann "Überprüfen - Benutzer dürfen Bereiche bearbeiten" und dem Assistenten folgen.
Unter der Schaltfläche "Berechtigungen" kannst du spezifischen Windowsusern, für die natürlich ein Account lokal oder in der Domäne bzw. ActiveDirectory, vorhanden sein muss, zuweisen.
Gruss Rainer
Anzeige
AW: Zugriffsrechte für Windows-User mit Rechtetabelle
16.06.2009 16:15:15
Thorsten
Danke schonmal.
Jau - würde gehen, aber folgende Dinge stören mich daran:
  • ich MUSS Passwörter unabhängig von Windows vergeben

  • ich kann die User nicht so einfach definieren, wenn die gleiche Person auch mit andern Usern arbeitet (wie zu Hause zum Beispiel

  • Mir schwebt vor den Usernamen auszulesen und mit der Liste zu vergleichen. Hätte jemand einen Code für sowas?
    Danke!
    Anzeige
    Quadratur des Kreises. Unmöglich
    16.06.2009 16:26:12
    Ramses
    Hallo
    "...# ich kann die User nicht so einfach definieren, wenn die gleiche Person auch mit andern Usern arbeitet (wie zu Hause zum Beispiel..."
    Dann nützt dir auch das auslesen des windows-Usernamen nichts.
    Woher willst du wissen wie der User auf dem anderen PC heisst wenn er zuhause arbeitet oder der User an einem anderen PC arbeitet mit einem anderen angemeldeten Windows User ?
    Dann mach die Abfrage über eine integrierte Userform in der der User einen Namen und das Passwort angeben muss. Das kannst du in deiner hinterlegten Tabelle abfragen und dann die entsprechenden Bereiche anzeigen
    Gruss Rainer
    Anzeige
    AW: Quadratur des Kreises. Unmöglich
    16.06.2009 17:06:28
    Thorsten
    Hi,
    naja - wenn jemand mit einem anderen Rechner arbeiten will, dann wird er mir den User mit dem er das macht sicher mitteilen können. Die Tabelle wird nicht von 100 Leuten oder so bearbeitet.
    Lassen wir die Spielerei mal weg. Zur Erhöhung der Akzeptanz einer solchen Excel-Liste, wie sie ja immer gern und leicht verschrieen werden, wäre die Arbeit ohne die Eingabe eines PW wirklich toll.
    Gibts dazu eine Möglichkeit? Die Quadratur des Kreises ist das glaube ich nicht ... :). Die Attribute die dazu nötig sind müssten sich doch mit VBA beschreiben lassen.
    Danke und Gruss
    Thorsten
    Anzeige
    AW: Quadratur des Kreises. Unmöglich
    16.06.2009 17:35:32
    Ramses
    Hallo
    "...Gibts dazu eine Möglichkeit?..."
    So wie du es willst (Unterschiedliche Benutzer/Unterschiedliche Bereiche bearbeiten),... nein.
    Da hilft auch VBA nicht.
    Es muss schon eine eindeutige Identifikation/Erlaubnis da sein.
    Gruss Rainer
    AW: Quadratur des Kreises. Unmöglich
    16.06.2009 17:39:16
    Thorsten
    Schade ... aber danke an alle.
    Ich gebe noch nicht auf und versuche mir eine Lösung zu stricken ... sollte ich was finden poste ich das hier ... :)
    Gruss
    Thorsten
    Anzeige
    AW: Zugriffsrechte für Windows-User mit Rechtetabelle
    17.06.2009 10:36:40
    Thorsten
    Hab mir nun selbst geholfen. Vielleicht interessant für andere.
    Diesen Code hab ich mir zusammen geklaut.
    
    Sub Zugriffsrechte()
    Dim user, rechte As String, i As Integer
    user = Environ("UserName")
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    If Cells(i, 3).Value = user Then
    rechte = Cells(i, 4)
    Range(rechte).Locked = False
    End If
    Next i
    Sheets("Liste").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True,  _
    AllowFiltering:=True
    End Sub
    


    Hier ist das File:
    https://www.herber.de/bbs/user/62502.xls
    Danke für die Anregungen.
    Gruss
    Thorsten

    Anzeige
    ;
    Anzeige

    Infobox / Tutorial

    Zugriffsrechte für Windows-User in Excel anpassen


    Schritt-für-Schritt-Anleitung

    1. Vorbereitung der Zuordnungstabelle:

      • Erstelle eine Tabelle auf einem separaten Blatt, in der du die Benutzer und ihre Zugriffsrechte auflistest. Achte darauf, dass die Spalten für Benutzernamen und die entsprechenden Bereiche, auf die sie Zugriff haben sollen, klar definiert sind.
    2. Benutzername abfragen:

      • Verwende den folgenden VBA-Code, um den aktuell angemeldeten Windows-User abzufragen:
      Sub BenutzernameAbfragen()
         Sheets(1).Range("A1").Value = VBA.Environ("Username")
      End Sub
    3. Zugriffsrechte festlegen:

      • Implementiere den Code, der die Berechtigungen basierend auf den Benutzernamen aus der Zuordnungstabelle festlegt:
      Sub Zugriffsrechte()
         Dim user, rechte As String, i As Integer
         user = Environ("UserName")
         For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
             If Cells(i, 3).Value = user Then
                 rechte = Cells(i, 4)
                 Range(rechte).Locked = False
             End If
         Next i
         Sheets("Liste").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True
      End Sub
    4. Blattschutz aktivieren:

      • Aktiviere den Blattschutz für das Arbeitsblatt, damit nur die entsprechend berechtigten Benutzer auf die definierten Bereiche zugreifen können.
    5. Testen der Funktionalität:

      • Teste die Implementierung, indem du dich mit verschiedenen Benutzern anmeldest und prüfst, ob die Zugriffsrechte korrekt angewendet werden.

    Häufige Fehler und Lösungen

    • Problem: Der Benutzername wird nicht korrekt abgerufen.

      • Lösung: Stelle sicher, dass die Excel-Datei nicht in einem geschützten Modus geöffnet ist. Prüfe auch, ob das VBA-Programm korrekt aktiviert ist.
    • Problem: Zugriffsrechte scheinen nicht zu funktionieren.

      • Lösung: Vergewissere dich, dass die Zellen, auf die der Zugriff beschränkt werden soll, tatsächlich gesperrt sind, und dass der Blattschutz aktiviert ist.

    Alternative Methoden

    • Active Directory Berechtigungen auslesen:

      • Wenn du mit Office 365 oder einer Unternehmensumgebung arbeitest, kannst du auch die Active Directory Berechtigungen auslesen und diese in deiner Excel-Tabelle verwenden. Dies erleichtert die Verwaltung von Benutzern und deren Zugriffsrechte.
    • Eingabeformulare verwenden:

      • Implementiere ein Userform, in dem Benutzer ihren Namen und ein Passwort eingeben müssen. Die Eingabedaten können dann mit der Zuordnungstabelle abgeglichen werden.

    Praktische Beispiele

    • Beispiel 1: Ein Unternehmen hat eine Tabelle, in der unterschiedliche Abteilungen bestimmte Bereiche in Excel bearbeiten dürfen. Der VBA-Code prüft, ob der aktuelle Benutzer in der Liste der berechtigten Benutzer steht und schaltet die entsprechenden Bereiche frei.

    • Beispiel 2: Ein Administrator kann die Rechte für Benutzer ändern, indem er die Zuordnungstabelle anpasst, ohne die gesamte Excel-Datei neu zu konfigurieren.


    Tipps für Profis

    • Regelmäßige Überprüfung der Zugriffsrechte: Stelle sicher, dass du regelmäßig die Berechtigungen überprüfst, insbesondere wenn sich Benutzerrollen oder Abteilungsstrukturen ändern.

    • Sicherungskopien erstellen: Bevor du Änderungen an den Berechtigungen vornimmst, erstelle Sicherungskopien der Datei, um Datenverlust zu vermeiden.

    • Eingabefelder für Benutzer: Überlege, Eingabefelder für Benutzer zu erstellen, um die Benutzerfreundlichkeit zu erhöhen und die Eingabe zu vereinfachen.


    FAQ: Häufige Fragen

    1. Wie kann ich die Berechtigungen nach Personen einschränken? Du kannst die Berechtigungen für bestimmte Bereiche über eine Zuordnungstabelle und VBA festlegen, wie im obigen Code beschrieben.

    2. Was ist, wenn mehrere Benutzer den gleichen Computer nutzen? In diesem Fall empfiehlt es sich, eine Eingabeform zu verwenden, in der sich die Benutzer identifizieren müssen, um ihre spezifischen Zugriffsrechte zu erhalten.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige