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

Passwortabfrage für verschiedene tabellenblätter

Forumthread: Passwortabfrage für verschiedene tabellenblätter

Passwortabfrage für verschiedene tabellenblätter
27.04.2024 19:23:05
Alexwin
Hallo,
auch heute brauche ich einmal einen kleinen Denkanstoß.
Ich habe mir eine Passwortabfrage für geschützte Bereiche innerhalb einer Excel-Mappe gebastelt.
Über eine Start-Seite kann man eine von sechs verschiedenen Seiten auswählen, es öffnet sich eine userForm in die ein Benutzer und ein Passwort eingegeben werden muß. Mit einem klick auf den öffnen-Button soll dann die entsprechende Seite bei Berechtigung geöffnet werden, andernfalls erschein eine MSGBox mit dem Hinweis das der User keine Berechtigung hat.
Für die einzelnen Benutzer habe ich eine Tabelle mit Benutzer, Passwort und Abteilung
Für die einzelnen Passwortabfragen habe ich 6 userformen die entsprechend aufgerufen werden

Grundsätzlich funktioniert diese Methode soweit auch gut, ein Problem entsteht wenn ein User mehrfach in dieser Tabelle steht da er Zugriff auf mehrere Seiten haben darf.
Dann wählt mein Code immer wohl nur den ersten Eintrag des Users aus und überprüft nicht ob der gleiche User vielleicht öffter in der Tabelle zu finden ist.

Beispieltabelle User:

Benutzer Passwort Abteilung
User1 1234 Abteilung 1
User2 2345 Abteilung 2
.....
User5 23434 Abteilung1
User5 23434 Abteilung2


Soll der User5 nun also Abteilung 2 öffnen sagt meine Abfrage das er kein recht hat da der erste Eintrag Abteilung1 ist.
Ich bekomme es einfach nicht hin das eine Art Schleife über die gesamte Tabelle läuft um zu prüfen ob es auch einen User5 mit Passwort 23434 und Abteilung2 gibt.

Private Sub btnkaffee_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)



'Variablen dimensionieren
Dim rng As Range
Dim ws As Worksheet


'Benutzername suchen
Set rng = Range("tblZugriffsrechte[Benutzername]").Find(what:=txtbenutzername.Value, lookat:=xlWhole)

'Prüfen, ob Benutzername angelegt ist

If rng Is Nothing Then

'Benutzer benachrichtigen
MsgBox "Dieser Nutzer ist nicht angelegt."

'Prozedur beenden
Exit Sub

End If


'Prüfen, ob Passwort korrekt ist
If rng.Offset(0, 1).Value > txtpasswort.Value Then

'Benutzer benachrichtigen
MsgBox "Das Passwort ist nicht korrekt."

'Prozedur beenden
Exit Sub

End If


'Prüfen, ob Benutzer berechtigt ist
If rng.Offset(0, 2).Value = "Abteilung 2" Then

tb_Kaffeekasse5.Select

ElseIf rng.Offset(0, 2).Value > "Abteilung 2" Then

MsgBox "Keine Berechtigung"



End If



'Userform schließen
Unload Me

End Sub





Private Sub btnkaffee_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

'Prüfen, ob Schließen Button gedrückt wurde
If CloseMode = vbFormControlMenu Then

Unload Me


End If


End Sub

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Passwortabfrage für verschiedene tabellenblätter
27.04.2024 19:32:53
Onur
Du machst alles VIEEEL zu kompliziert. SECHS Userformen???
Poste mal die Datei.
AW: Passwortabfrage für verschiedene tabellenblätter
27.04.2024 21:09:28
Onur
Vergiss es. SO wir das nix. WO stehen denn in der Berechtigungs-Liste die Blattnamen???
SO macht man das:
https://www.herber.de/bbs/user/169102.xlsm
Anzeige
AW: Passwortabfrage für verschiedene tabellenblätter
28.04.2024 07:30:00
Alexwin
Guten Morgen,
und erst einmal Danke für die Hilfe.

Leider komme ich mit deiner Datei noch nicht so klar. Mir ist die Funktionsweise nicht klar bzw. was ich nun damit machen soll ?
Ich habe versucht den Code für mich zu verstehen, leider ohne Erfolg. Kannst du mir bitte kurz erklären ob ich richtig damit liege das in die Zelle D8 (Cells(4, 8) = Application.UserName) ein Username aus der Tabelle geschrieben werden soll und wenn dieser Name vorhanden ist dann eine Passwortabfrage erfolgen soll ?
Ich bekomme das nicht hin. Ich habe schon versucht die Tabelle in eine echte Tabelle umzuwandeln ( STRG + T ) da im Code ja auch von Tabelle1 die Rede ist, das brachte mir noch keinen Erfolg.
Ausserdem ist mir dann ebenfalls noch nicht klar wie ich das in mein Projekt einbinden soll. Nachdem eine Abteilung angeklickt wurde soll ja dann eine Legitimation erfolgen, deshalb habe ich die Userfom erstellt.

Übrigens nutze ich meine Benutzertabelle auch noch an anderer Stelle in dem Workbook da ich das Workbook grundsätzlich in einem Benutzermodus starte wo alle Excel-Elemente ausgeblendet sind. Es gibt dann einen Button um in den Admin-Modus umzuschalten um arbeiten daran vornehmen zu können. Deswegen der User Admin. Das funktioniert auch tadellos.
Anzeige
AW: Passwortabfrage für verschiedene tabellenblätter
28.04.2024 13:19:11
Onur
"ob ich richtig damit liege das in die Zelle D8 (Cells(4, 8) = Application.UserName) ein Username aus der Tabelle geschrieben werden soll und wenn dieser Name vorhanden ist dann eine Passwortabfrage erfolgen soll ? " Quatsch! Vergiss D8. Das war nur eine Demo, damit du siehst, was ich mit Username meine, nämlich den, mit dem man am Rechner angemeldet ist und nicht irgend welche, von dir ausgedachte wie "Admin" oder "MickyMaus"
"Tabelle1" ist der Codename des Blattes mit den Passwörtern. Jedes Blatt hat einen Codenamen und einen Anzeigenamen (den du unten im Reiter siehst). Den Anzeigenamen kannst du als User beliebig ändern, den Codenamen nicht. Deswegen habe ich im Code den Codenamen benutzt.
Bei meiner Datei kann jeder User nur die Seiten auswählen, für die er laut dem Blatt mit dem Codenamen "Tabelle1" (das mit den Passwörtern) befugt ist.
Anzeige
AW: Passwortabfrage für verschiedene tabellenblätter
28.04.2024 13:51:10
Alexwin
Ok, das funktioniert bei uns so aber dann leider nicht.
Nicht jeder User hat einen eigenen Arbeitsplatz, geschweige denn ein eigenes Benutzerkonto.
An dem Rechner arbeiten täglich verschiedene Leute, angemeldet ist er mit einem Konto für alle.
Dementsprechend war ja von anfang an mein Plan eine Passwortabfrage über eine Userform einzubringen wo sich dann der User x für die Tabellenblätter X und der User Y für die Tabellenblätter Y legitimieren kann. In der gleichen Arbeitsmappe sind aber auch viele tabellenblätter die von allen gesehen und bearbeitet werden dürfen.

Deswegen habe ich ja die Beispiel-Datei angehängt damit man das Grundprinzip sehen kann. Dabei handelt es sich nur um einen kleinen Teil aus der gesamten Arbeitsmappe.
Es wäre also toll wenn es eine Idee gäbe wie man meinen Entwurf umsetzten könnte.
Anzeige
;

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