Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1572to1576
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

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

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.
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

57 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige