Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Passwortabfrage per UserForm

Betrifft: Passwortabfrage per UserForm von: Ina
Geschrieben am: 09.11.2012 12:56:33

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

  

Betrifft: AW: Passwortabfrage per UserForm von: Rudi Maintaire
Geschrieben am: 09.11.2012 13:25:40

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 < 2 Then
    Na = TextBox1
    Pw = TextBox2
    iCounter = iCounter + 1
    If IsError(Application.Match(Na, NaFix, 0)) Then
      MsgBox "Name falsch"
      Exit Sub
    End If
    If Pw <> 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


  

Betrifft: AW: Passwortabfrage per UserForm von: Ina
Geschrieben am: 09.11.2012 14:13:00

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


  

Betrifft: AW: Passwortabfrage per UserForm von: Rudi Maintaire
Geschrieben am: 09.11.2012 14:41:58

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


  

Betrifft: Danke Rudi! Bitte lesen... :o) von: Ina
Geschrieben am: 09.11.2012 14:54:50

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


  

Betrifft: AW: Passwortabfrage per UserForm von: Ina
Geschrieben am: 09.11.2012 14:13:06

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


 

Beiträge aus den Excel-Beispielen zum Thema "Passwortabfrage per UserForm"