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

Forumthread: Passwortabfrage per UserForm

Passwortabfrage per UserForm
09.11.2012 12:56:33
Ina
Hallo und guten Tag ins Forum,
ich habe eine UserForm, in der über Textbox1 der Name und über Textbox2 das Passwort abgefragt werden. Das klappt auch soweit...
Mein Problem, meine Fragen:
Ist es möglich, die Passwortabfrage auf 3 Abfragen zu beschränken und, falls die Angaben 3 x falsch waren, Excel zu beenden? Momentan erfolgt die Abfrage unendlich.
Ist es möglich, mehr als eine Person mit Passwort zu hinterlegen?
Wer kann mir den Code-Schnipsel entsprechend anpassen? Vielen Dank!
LG Ina
Private Sub CommandButton1_Click()
Dim Na As String, NaFix As String
Dim Pw As String, PwFix As String
NaFix = "Ina Testmann"
PwFix = "Ab1234"
Na = TextBox1
Pw = TextBox2
If Na  NaFix Or Pw  PwFix Then
If MsgBox("Keine oder falsche Angaben! Neuer Versuch?", vbYesNo) = vbYes Then
UserForm4.TextBox1 = ""
UserForm4.TextBox2 = ""
TextBox1.SetFocus
Exit Sub
Else
ActiveWorkbook.Close
End If
End If
If Na = NaFix And Pw = PwFix Then MsgBox "Sie dürfen rein!"
Worksheets("Tabelle1").Visible = True
Worksheets("Tabelle2").Visible = True
Worksheets("Tabelle3").Visible = True
Worksheets("Tabelle4").Visible = True
Worksheets("Tabelle5").Visible = True
Sheets("Tabelle1").Select
Range("F11").Select
Unload Me
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Passwortabfrage per UserForm
09.11.2012 13:25:40
Rudi
Hallo,
wen willst du damit abschrecken?

Private Sub CommandButton1_Click()
Dim Na As String, NaFix
Dim Pw As String, PwFix
Static iCounter As Integer
NaFix = Array("Ina Testmann", "Test1")
PwFix = Array("Ab1234", "1234")
If iCounter  PwFix(Application.Match(Na, NaFix, 0) - 1) Then
MsgBox "Passwort falsch"
Exit Sub
End If
Else
ActiveWorkbook.Close
End If
iCounter = 0
MsgBox "Sie dürfen rein!"
Worksheets("Tabelle1").Visible = True
Worksheets("Tabelle2").Visible = True
Worksheets("Tabelle3").Visible = True
'  Worksheets("Tabelle4").Visible = True
'  Worksheets("Tabelle5").Visible = True
Sheets("Tabelle1").Select
Range("F11").Select
Unload Me
End Sub

Gruß
Rudi

Anzeige
AW: Passwortabfrage per UserForm
09.11.2012 14:13:00
Ina
Hallo Rudi,
danke für Deine Hilfe! Das klappt schon fast perfekt...
Abschrecken kann ich damit wahrscheinlich nur reine Excel-Anwender und Neulinge - also mich :o) - aber es gibt irgendwie ein gutes Gefühl, das vielleicht doch nicht jeder die Mappe öffnen kann...
Ich habe noch einen kleinen Fehler festgestellt und gleichzeitig eine Bitte.
Nach der ersten und zweiten falschen Eingabe zeigt die MsgBox richtig "Name falsch" bzw. "Passwort falsch" an.
Nach der dritten falschen Eingabe zeigt die MsgBox fälschlich "Sie dürfen rein!" an und die Tabellenblätter werden angezeigt!
Anschliessend kommt die Excel-Abfrage "Sollen Ihre Änderungen ... gespeichert werden?".
Meine Bitte:
Ist es noch möglich, bei falscher Eingabe den Inhalt der Textboxen 1 und 2 zu leeren und den Focus anschliessend auf Textbox1 zu setzen?
Danke und lG Ina

Anzeige
AW: Passwortabfrage per UserForm
09.11.2012 14:41:58
Rudi
Hallo,
aber es gibt irgendwie ein gutes Gefühl, das vielleicht doch nicht jeder die Mappe öffnen kann...

dafür gibt's doch den Schreib-/ Leseschutz.
Private Sub CommandButton1_Click()
Dim Na As String, NaFix
Dim Pw As String, PwFix
Static iCounter As Integer
NaFix = Array("Ina Testmann", "Test1")
PwFix = Array("Ab1234", "1234")
Na = TextBox1
Pw = TextBox2
iCounter = iCounter + 1
If IsError(Application.Match(Na, NaFix, 0)) Then
MsgBox "Name falsch"
If iCounter = 3 Then ActiveWorkbook.Close False
TextBox1 = ""
TextBox2 = ""
TextBox1.SetFocus
Exit Sub
End If
If Pw  PwFix(Application.Match(Na, NaFix, 0) - 1) Then
MsgBox "Passwort falsch"
If iCounter = 3 Then ActiveWorkbook.Close False
TextBox2 = ""
TextBox2.SetFocus
Exit Sub
End If
MsgBox "Sie dürfen rein!"
Worksheets("Tabelle1").Visible = True
Worksheets("Tabelle2").Visible = True
Worksheets("Tabelle3").Visible = True
'  Worksheets("Tabelle4").Visible = True
'  Worksheets("Tabelle5").Visible = True
Sheets("Tabelle1").Select
Range("F11").Select
Unload Me
End Sub

Gruß
Rudi

Anzeige
Danke Rudi! Bitte lesen... :o)
09.11.2012 14:54:50
Ina
Hallo Rudi,
danke schön für Deine Mühe! Klappt bestens!
Ein Satz zur Passwortabfrage...
Schreib-/ Leseschutz ist schon richtig, aber darf ich wenigstens als letztes Argument die Passwortabfrage als eventuelle und kleine Abschreckung ins Feld führen... ;o)
LG Ina

AW: Passwortabfrage per UserForm
09.11.2012 14:13:06
Ina
Hallo Rudi,
danke für Deine Hilfe! Das klappt schon fast perfekt...
Abschrecken kann ich damit wahrscheinlich nur reine Excel-Anwender und Neulinge - also mich :o) - aber es gibt irgendwie ein gutes Gefühl, das vielleicht doch nicht jeder die Mappe öffnen kann...
Ich habe noch einen kleinen Fehler festgestellt und gleichzeitig eine Bitte.
Nach der ersten und zweiten falschen Eingabe zeigt die MsgBox richtig "Name falsch" bzw. "Passwort falsch" an.
Nach der dritten falschen Eingabe zeigt die MsgBox fälschlich "Sie dürfen rein!" an und die Tabellenblätter werden angezeigt!
Anschliessend kommt die Excel-Abfrage "Sollen Ihre Änderungen ... gespeichert werden?".
Meine Bitte:
Ist es noch möglich, bei falscher Eingabe den Inhalt der Textboxen 1 und 2 zu leeren und den Focus anschliessend auf Textbox1 zu setzen?
Danke und lG Ina
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Passwortabfrage in Excel mit UserForm und VBA


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen:

    • Öffne Excel und gehe zu den Entwicklertools.
    • Klicke auf "Einfügen" und wähle "UserForm" aus.
    • Füge zwei TextBoxen (TextBox1 für den Namen und TextBox2 für das Passwort) und einen CommandButton hinzu.
  2. VBA-Code einfügen:

    • Doppelklicke auf den CommandButton, um das Codefenster zu öffnen.
    • Füge den folgenden Code ein, um die Passwortabfrage zu implementieren:
    Private Sub CommandButton1_Click()
       Dim Na As String, Pw As String
       Static iCounter As Integer
       Dim NaFix As Variant
       Dim PwFix As Variant
    
       NaFix = Array("Ina Testmann", "Test1")
       PwFix = Array("Ab1234", "1234")
       Na = TextBox1
       Pw = TextBox2
       iCounter = iCounter + 1
    
       If IsError(Application.Match(Na, NaFix, 0)) Then
           MsgBox "Name falsch"
           If iCounter = 3 Then ActiveWorkbook.Close False
           TextBox1 = ""
           TextBox2 = ""
           TextBox1.SetFocus
           Exit Sub
       End If
    
       If Pw <> PwFix(Application.Match(Na, NaFix, 0) - 1) Then
           MsgBox "Passwort falsch"
           If iCounter = 3 Then ActiveWorkbook.Close False
           TextBox2 = ""
           TextBox2.SetFocus
           Exit Sub
       End If
    
       MsgBox "Sie dürfen rein!"
       ' Sichtbarkeit der Arbeitsblätter
       Worksheets("Tabelle1").Visible = True
       Worksheets("Tabelle2").Visible = True
       Worksheets("Tabelle3").Visible = True
       Sheets("Tabelle1").Select
       Range("F11").Select
       Unload Me
    End Sub
  3. Testen der UserForm:

    • Starte die UserForm und teste die Eingabe von Namen und Passwort.

Häufige Fehler und Lösungen

  • Falsche Eingabe führt zu unendlicher Abfrage:

    • Stelle sicher, dass der Zähler iCounter korrekt inkrementiert wird und die Abfrage nach drei falschen Versuchen die Excel-Datei schließt.
  • Passwortabfrage nicht korrekt:

    • Überprüfe den Vergleich der Passwörter im Code. Achte darauf, dass die Indizes in den Arrays korrekt sind.

Alternative Methoden

  • Verwendung von Excel-Schutz:

    • Anstatt nur eine Passwortabfrage zu verwenden, kannst Du auch den Arbeitsblattschutz aktivieren. Dies bietet eine zusätzliche Sicherheitsebene.
  • Formularfelder:

    • Du kannst auch Formularsteuerelemente verwenden, um eine einfachere Benutzeroberfläche zu gestalten, ohne VBA.

Praktische Beispiele

  1. Mehrere Benutzer:

    • Der Code kann leicht angepasst werden, um mehrere Benutzer mit unterschiedlichen Passwörtern zu unterstützen, indem Du die Arrays NaFix und PwFix erweiterst.
  2. Verwendung in einem Projekt:

    • In einem Projekt, in dem sensible Daten vorhanden sind, kann die passwortabfrage eine erste Schutzmaßnahme sein, um den Zugriff zu steuern.

Tipps für Profis

  • Code optimieren:

    • Verwende Select Case anstelle von mehreren If-Anweisungen für bessere Lesbarkeit.
  • Fehlerprotokollierung:

    • Implementiere eine Fehlerprotokollierung, um zu verfolgen, wie oft falsche Anmeldungen stattfinden.

FAQ: Häufige Fragen

1. Kann ich die Passwortabfrage anpassen, um mehr als zwei TextBoxen zu verwenden?
Ja, Du kannst die UserForm so anpassen, dass sie mehrere TextBoxen für unterschiedliche Benutzer oder Passwörter enthält.

2. Was passiert, wenn ich das Passwort vergesse?
In diesem Fall musst Du den VBA-Code manuell bearbeiten, um die Passwortabfrage zu umgehen, oder eine Sicherungskopie Deiner Datei verwenden.

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