Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1824to1828
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

Login-Formular

Login-Formular
14.04.2021 16:07:23
Marvin
Guten Tag, alle zusammen. Ich hätte ein kleines Anliegen.
Ich versuche schon den gesamten Tag, mithilfe von VBA ein Login-Formular zu erstellen.
Ich versuch mal mein bestes, es zu erklären:
Ich habe einen Button auf dem Tabellenblatt "Anmeldung". Sobald dieser angeklickt wird, erscheint ein Formular mit 2 Textfeldern ("Benutzername" und "Passwort") und 2 weiteren Buttons ("Abbruch" und "Login"). Die Login-Daten sind in einem weiteren Tabellenblatt ("Benutzer") hinterlegt. In Spalte A steht der Benutzername, in Spalte B steht das zugehörige Passwort, und in Spalte C steht die entsprechende Abteilung.
Bis hier hin klappt alles soweit.
Wenn man nun die entsprechenden Anmeldedaten ins Formular eingibt, soll er zuerst prüfen, ob überhaupt etwas eingegeben wurde.
Wenn ja, soll er den Benutzernamen im Tabellenblatt suchen. Wenn er ihn gefunden hat und der Benutzername auch korrekt ist, überprüft er das Passwort. Wenn dieses auch gefunden wurde und korrekt ist, soll das Formular erstmal wieder geschlossen werden (Was danach passiert, darüber mache ich mir Gedanken, wenn es mit dem Login klappt).
Jetzt hab ich das Problem, dass mir ein "Laufzeitfehler 91 - Objektvariable oder With-Blockvariable nicht festgelegt" ausgegeben wird. Dabei wird Zeile 29 (unten im Code Fett markiert) gelb eingefärbt. Ich bin mir aber ziemlich sicher, dass alle geforderten Variablen von mir auch deklariert wurden. Kann mir einer von euch hierbei weiterhelfen? Hab auch schon mehrere Foren durchsucht (auch hier), aber habe nichts gefunden, was mir bei meinem Problem helfen könnte.
Vielen Dank im Voraus
Mit freundlichen Grüßen
Marvin
Option Explicit

Private Sub Abbruch_Click()
'Wenn dieser Button gedrückt wird, wird das Anmeldefenster geschlossen
Unload Formular
'Einblenden der Schaltfläche auf dem Tabellenblatt
Worksheets("Anmeldung").DrawingObjects.Visible = True
End Sub

Private Sub Login_Click()
'Fehlermeldung leer setzen
ErrorMessage.Caption = ""
'Benutzerüberprüfung
With ThisWorkbook.Worksheets("Anmeldung").Activate
'Die benötigten Variablen werden definiert
Dim Benutzername As Range
Dim Passwort As Variant
Dim Teileinheit As Variant
Dim BenutzerWs As Worksheet
Dim EBListeWs As Worksheet
Dim Daten As ListRow
'Die benötigten Tabellen werden definiert
Set BenutzerWs = Worksheets("Benutzer")
Set EBListeWs = Worksheets("EB-Liste")
'Prüfen, ob ein Passwort und ein Benutzername eingegeben wurden
If Benutzername.Value "" And Passwort.Value "" Then
'Suche den Benutzernamen
Set Benutzername = BenutzerWs.Range("A:A").Find(What:=Benutzername.Value, LookIn:= _
xlValues, lookat:=xlWhole, MatchCase:=True)
'Benutzername nicht gefunden
If Benutzername Is Nothing Then
ErrorMessage.Caption = "Benutzername nicht gefunden"
Else
'Benutzername gefunden, suche das Passwort
Set Passwort = BenutzerWs.Cells(Benutzername.Row, 2)
'Passwort nicht gefunden
If Passwort Is Nothing Then
ErrorMessage.Caption = "Passwort nicht gefunden"
Else
'Passwort nicht korrekt
If Passwort Passwort.Value Then
ErrorMessage.Caption = "Passwort falsch"
Else
'Passwort und Benutzername sind korrekt
Set Teileinheit = BenutzerWs.Cells(Benutzername.Row, 3)
'Teileinheit nicht gefunden
If Teileinheit Is Nothing Then
ErrorMessage.Caption = "Teileinheit nicht gefunden"
Else
'Teileinheit gefunden, Daten werden ausgelesen
Dim i As Integer
Dim e As Integer
Dim Sht1 As Worksheet
Dim Sht2 As Worksheet
Dim Finde As String
'Zuweisung der Tabellen für das Auslesen und Schreiben der Daten
Finde = Teileinheit.Value
End If
End If
End If
End If
End If
End With
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Login-Formular
14.04.2021 16:34:22
ChrisL
Hi
Private Sub CommandButton1_Click()
With Worksheets("Benutzer")
If Benutzername = "" Or Passwort = "" Then
MsgBox "Benutzername und/oder Passwort wurde nicht erfasst"
ElseIf WorksheetFunction.CountIf(.Columns(1), Benutzername) = 0 Then
MsgBox "Benutzername nicht gefunden"
ElseIf CStr(WorksheetFunction.VLookup(Benutzername, .Range("A1:C1000"), 2, 0)) _
 Passwort Then
MsgBox "Passwort falsch"
Else
MsgBox "Alles OK. Benutzer arbeitet in Abteilung: " & _
WorksheetFunction.VLookup(Benutzername, .Range("A1:C1000"), 3, 0)
End If
End With
End Sub

cu
Chris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige