Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Benutzer-Login

VBA Benutzer-Login
04.08.2017 10:13:18
tursiops
Hallo!
Ich möchte den Nutzern meiner Tabelle über einen einfachen Benutzer-Login je nach zugewiesener Rolle nur einen Teil der Tabellen und Makros zur Verfügung stellen.
95 % des Projektes sind fertig und funktionieren gut. Bei dem tatsächlichen Login benötige ich jedoch noch etwas Hilfe.
Der Plan:
Bei Klick auf die Schaltfläche Login soll der Code prüfen, ob in der Registerkarte User in E1 "OK" steht. Falls ja, soll das entsprechende Makro für die zugewiesene Rolle ausgeführt werden. Der benötige Makro-Name steht in User!F1. Falls in User!E1 nicht OK steht ist der Login falsch. In diesem Fall soll eine einfache MsgBox angezeigt werden. z.B.:
MsgBox "Die Kombination aus Benutzer und Passwort ist nicht bekannt"
Für jede Hilfe wäre ich dankbar!
Gruß Frank
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Benutzer-Login
04.08.2017 16:41:57
Peter
Hallo Frank,
so einfach ist die Sache leider nicht. Je mehr User, je mehr Makros bzw. je mehr Tabellenblätter, die ein bestimmter User starten bzw. bearbeiten darf, um so komplizierter wird das Auswahlverfahren. Die variablen Auswahlkriterien je User sollten dann in einen entsprechenden Bereich (in dem Arbeitsblatt "User" oder einem anderen) gesetzt werden. Die erlaubten Funktionen kann man z. B. mit einer "1" und die nicht erlaubten Funktionen mit einer "0" belegen. Alle relevanten Makros müssen in ihrem Code vorweg mit einer Sicherheitsabfrage (if range("f1") = 1 then) ausgestattet werden. Das gleiche gilt für das Einblenden von Arbeitsblättern (per Makro). Es ist also eine Tabelle mit allen Usern und allen relevanten Funktionen anzulegen. Diese Tabelle ist verdeckt und wird nur dann geöffnet, wenn "LOGIN" "o.k." ist. Die Fensterbewegungen sollten ausgeschaltet sein (ScreenUpdating = False). Schlussendlich müssen die Makros vor der Ausspähung mit Password geschützt werden.
Da ich weder die User noch die erlaubten Funktionen kenne, kann ich auch keinen Lösungsvorschlag beifügen. Der Aufwand, ein solches Sicherheitssystem einzurichten, ist hoch. Vielleicht solltest Du in diesem Fall die Auftragsprogrammierung von Herber einschalten.
Mit freundlichem Gruß
Peter Kloßek
Anzeige
AW: VBA Benutzer-Login
07.08.2017 08:46:34
tursiops
Hallo!
Das ist bereits alles fertig. Für jede Rolle z.B. Administrator, User, Gast usw. gibt es bereits entsprechende Makros.
Unter Start! geben die Anwender Ihren Benutzernamen und das Passwort ein. Im verborgenen Tabellenblatt User! erfolgt die Prüfung, ob diese Kombination korrekt ist. (Zelle E1) In Zelle F1 sucht eine Formel den Namen des auszuführenden Makros entsprechend der zugewiesenen Rolle für diesen Benutzer.
Was ich nicht allein hinbekommen ist die Abfrage des Makros aus User!F1
Unter Start klickt der Benutzer nach der Eingabe von Benutzernamen und Passwort auf eine Schaltfläche.
Der Code für diese Schaltfläche müsste lediglich prüfen ob in User!E1 OK steht, andernfalls eine einfache MsgBox anzeigen und falls OK steht das fertige Makro ausführen, dessen Name in User!F1 ausgegeben wurde.
Gruß Frank
Anzeige
AW: VBA Benutzer-Login
07.08.2017 09:50:09
Matthias
Hallo
Hab Dir mal ein Bsp. erstellt.
Dabei ging es mir darum Dir zu zeigen, wie man ein Makro dessen MakroName in einer Zelle steht ausführt.
https://www.herber.de/bbs/user/115290.xlsm
Betreffs der Sicherheit hat Dir Peter bereits einiges erklärt.
Anzeige
AW: VBA Benutzer-Login
07.08.2017 12:11:40
tursiops
Hallo!
Vielen Dank für die schnelle Antwort! Du hast Dir viel zu viel Mühe gemacht.
Die Prozedur für die Schaltfläche im Registerblatt Start muss wirklich nur eines machen:
Sub Login()
Sheets("User").Select
Application.Run Cells(1, 6).Value
End Sub
Für den fehlerhaften Login habe ich ein separates Makro hinterlegt.
Auf Application.Run Cells(1, 6).Value bin ich aber nicht gekommen.
Vielen Dank nochmals.
Gruß Frank
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Benutzer-Login mit VBA in Excel


Schritt-für-Schritt-Anleitung

  1. Benutzerdaten vorbereiten: Erstelle ein verborgenes Arbeitsblatt namens „User“, in dem die Benutzernamen und Passwörter gespeichert werden. In Zelle E1 solltest du „OK“ setzen, wenn die Anmeldedaten korrekt sind. In Zelle F1 kannst du den Namen des auszuführenden Makros für den Benutzer hinterlegen.

  2. Eingabefelder einrichten: Füge auf dem Arbeitsblatt „Start“ zwei Eingabefelder für den Benutzernamen und das Passwort hinzu.

  3. Schaltfläche einfügen: Platziere eine Schaltfläche, die beim Klick den Login-Prozess ausführt.

  4. VBA-Code hinzufügen: Füge den folgenden Code in das VBA-Editorfenster ein:

    Sub Login()
       Sheets("User").Select
       If Range("E1").Value = "OK" Then
           Application.Run Cells(1, 6).Value
       Else
           MsgBox "Die Kombination aus Benutzer und Passwort ist nicht bekannt"
       End If
    End Sub
  5. Testen: Überprüfe den Login-Prozess, indem du verschiedene Kombinationen von Benutzernamen und Passwörtern ausprobierst.


Häufige Fehler und Lösungen

  • Fehlerhafte Eingabe: Wenn die MsgBox „Die Kombination aus Benutzer und Passwort ist nicht bekannt“ erscheint, überprüfe die Eingaben im Arbeitsblatt „User“. Stelle sicher, dass die Benutzerdaten korrekt in Zelle E1 stehen.

  • Makro funktioniert nicht: Achte darauf, dass die Makros, die du ausführen möchtest, korrekt in Zelle F1 hinterlegt sind. Wenn der Makroname nicht existiert, wird ein Fehler auftreten.

  • Zugriffsprobleme: Stelle sicher, dass das Arbeitsblatt „User“ nicht sichtbar ist, um die Benutzerdaten zu schützen. Du kannst dies in den Eigenschaften des Arbeitsblatts anpassen.


Alternative Methoden

  • Excel VBA Benutzerverwaltung: Du kannst eine komplexere Benutzerverwaltung in Excel aufbauen, indem du eine Tabelle mit Rollen und Berechtigungen erstellst. Diese Tabelle hilft, die Zugriffsrechte für jede Rolle zu definieren.

  • Excel Online Login: Wenn du Excel Online verwendest, kannst du auch die integrierten Funktionen für Benutzeranmeldung und -verwaltung nutzen, die eine einfachere Handhabung bieten.


Praktische Beispiele

  • Du kannst ein Beispielprojekt herunterladen, das die Funktionsweise eines VBA-Logins demonstriert. Ein Link zu einem Beispiel findest du hier: Beispiel VBA Login.

  • Erstelle ein einfaches Formular zur Eingabe von Benutzernamen und Passwort, das die Login-Funktionalität visuell unterstützt.


Tipps für Profis

  • Sicherheit erhöhen: Schütze deine VBA-Projekte mit einem Passwort, um sicherzustellen, dass Dritte keinen Zugriff auf deinen Code haben.

  • Benutzerfreundlichkeit: Integriere eine Funktion, die nach mehreren fehlgeschlagenen Login-Versuchen den Benutzer für eine bestimmte Zeit sperrt.

  • Logging: Füge ein Logging-System hinzu, um alle Login-Versuche zu protokollieren. Dies hilft bei der Überwachung und kann nützlich sein, um Sicherheitsprobleme zu identifizieren.


FAQ: Häufige Fragen

1. Wie kann ich den VBA-Code anpassen, um mehrere Benutzerrollen zu unterstützen?
Du kannst eine zusätzliche If-Abfrage einfügen, die je nach Benutzerrolle unterschiedliche Makros ausführt.

2. Kann ich den Login auch ohne VBA realisieren?
Ja, du kannst Excel-Funktionen verwenden, um den Zugriff auf bestimmte Zellen oder Tabellenblätter zu steuern, jedoch ist dies nicht so sicher wie ein VBA-Login.

3. Wie kann ich das Arbeitsblatt „User“ verstecken?
Klicke mit der rechten Maustaste auf das Arbeitsblatt „User“, wähle „Ausblenden“ aus. In VBA kannst du es auch mit Sheets("User").Visible = xlSheetVeryHidden verstecken.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige