|
Vielen Dank für Deine Antwort und sorry für die späte Antwort.
Benutzernamen und Passwörter auf einem Blatt sind schon okay. Ich arbeite nicht im Pentagon.
Leider funktioniert es nicht. Egal wo ich die ElseIf-Zeile einsetze bekomme ich einen Fehler wiedergegeben, bzw. läuft der Code erst gar nicht durch.
Die Variablen ganz am Anfang hatte ich auch nach Deiner Vorgabe dimensioniert. Leider ohne Erfolg. Kannst Du mir hiermit bitte helfen?
Hier nochmal meine ursprünglicher Code:
Option Explicit
Private Sub btnAnmelden_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
'Benutzernamen 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 Benutzername 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 Admin ist
If rng.Offset(0, 2).Value = "Admin" Then
'Schleife über alle Tabellenblätter
For Each ws In ThisWorkbook.Worksheets
'Tabellenblatt einblenden
ws.Visible = xlSheetVisible
Next ws
ElseIf rng.Offset(0, 2).Value = "Benutzer" Then
'Schleife über alle Tabellenblätter
For Each ws In ThisWorkbook.Worksheets
'prüfen, der Blattnamen welche nicht eingblendet werden sollen
If ws.Name <> "Formsatz- und Kalibriertypen" And ws.Name <> "Zugriffsrechte" And ws.Name <> "ID-Bezeichnungen" Then
'Tabellenblatt einblenden
ws.Visible = xlSheetVisible
End If
Next ws
End If
'UserForm schließen
Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Prüfen, ob Schließen Button geklickt wurde
If CloseMode = vbFormControlMenu Then
'Excel Datei Schließen
ThisWorkbook.Close SaveChanges:=False
End If
End Sub
|