Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1244to1248
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

VBA end if

VBA end if
Frank
Hallo Zusammen,
ich sehe irgendwie vor lauter Code die Lösung nicht mehr.
Ich habe ein Excelsheet mit dem Name Daten
Über eine Userform beim Öffen der Datei erkenne ich wer von 3 möglichen Benutzern sich anmeldet.
In der Tabelle Daten pflege ich wie folgt
User Passwort Angemeldet durch eingabe eines X in
MA Zelle P3 Zelle R2
AL Zelle P103 Zelle R3
SV Zelle P203 Zelle R4
Nun möchte ich dem jeweils angemeldeten User die Möglichkeit geben sein Passwort zu ändern hierzu möchte hierzu eine UserForm mit 3 Textboxen (1x altes Passwort und 2x neues Passwort) mit folgendes Makro verwenden. Leider bekomme ich den hiweis das ein End if fehlt.
Danke für eure Hilfe

Private Sub CommandButton1_Click()
'Makro zur Passwortänderung
'Old Password
OPW = TextBox1.Value
'New Password (1=first entry, 2= repeat entry)
NPW1 = TextBox2.Value
NPW2 = TextBox3.Value
'User 1
' Prüfung ob angemeldet
If Worksheets("Daten").Range("R2")  "X" Then
GoTo U2
Else
End If
' Prüfung Übereinstimmung des hinterlegten mit dem Eingegebenen alten Passworts
If OPW  Worksheets("Daten").Range("P3") Then
MsgBox ("Das alte Passwort ist inkorrekt!")
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
GoTo PWCEnd
Else
'Prüfung ob ein neues Passwort eingegeben wurde
If NPW1 = "" Then
MsgBox ("Bitte ein neues Passwort eingeben!")
GoTo PWCEnd
Else
'Prüfung Übereinstimmung der neuen Passwörter
If NPW1  NPW2 Then
MsgBox ("Die neuen Passwörter stimmen nicht überein!")
TextBox2 = ""
TextBox3 = ""
GoTo PWCEnd
Else
'Übertrag des neuen Passworts
Worksheets("Daten").Range("P3") = NPW2
Unload Me
UserForm1.Show
GoTo PWCtEN
'User 2
U2:
' Prüfung ob angemeldet
If Worksheets("Daten").Range("R4")  "X" Then
GoTo U3
Else
End If
If OPW  Worksheets("Daten").Range("P203") Then
MsgBox ("Das alte Passwort ist inkorrekt!")
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
GoTo PWCEnd
Else
If NPW1 = "" Then
MsgBox ("Bitte ein neues Passwort eingeben!")
GoTo PWCEnd
Else
If NPW1  NPW2 Then
MsgBox ("Die neuen Passwörter stimmen nicht überein!")
TextBox2 = ""
TextBox3 = ""
GoTo PWCEnd
Else
Worksheets("Daten").Range("P203") = NPW2
Unload Me
UserForm1.Show
GoTo PWCtEN
U3:
If Worksheets("Daten").Range("R4")  "X" Then
GoTo PWCERR
Else
End If
If OPW  Worksheets("Daten").Range("P203") Then
MsgBox ("Das alte Passwort ist inkorrekt!")
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
GoTo PWCEnd
Else
If NPW1 = "" Then
MsgBox ("Bitte ein neues Passwort eingeben!")
GoTo PWCEnd
Else
If NPW1  NPW2 Then
MsgBox ("Die neuen Passwörter stimmen nicht überein!")
TextBox2 = ""
TextBox3 = ""
GoTo PWCEnd
Else
Worksheets("Daten").Range("P203") = NPW2
Unload Me
UserForm1.Show
GoTo PWCtEN
PWCERR:
MsgBox ("Bitte umgehend die IT benachrichtigen. Es liegt ein Benutzerfehler vor.")
PWCEnd:
End If
PWCtEN:
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA end if
18.01.2012 15:11:34
Rudi
Hallo,
du hinterlegst tatsächlich Passwörter in einer Tabelle? Dann kannst du sie auch gleich ans schwarze Brett hängen.
Private Sub CommandButton1_Click()
'Makro zur Passwortänderung
'Old Password
Dim OPW As String, NPW1 As String, NPW2 As String, iUser As Integer
OPW = TextBox1.Value
'New Password (1=first entry, 2= repeat entry)
NPW1 = TextBox2.Value
NPW2 = TextBox3.Value
' welcher User?
iUser = Application.Match("X", Worksheets("Daten").Range("R2:R4"), 0) - 1
' Prüfung Übereinstimmung des hinterlegten mit dem Eingegebenen alten Passworts
If OPW  Worksheets("Daten").Cells(iUser * 100 + 3, 16) Then
MsgBox ("Das alte Passwort ist inkorrekt!")
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
Exit Sub
End If
'Prüfung ob ein neues Passwort eingegeben wurde
If NPW1 = "" Then
MsgBox ("Bitte ein neues Passwort eingeben!")
Exit Sub
End If
'Prüfung Übereinstimmung der neuen Passwörter
If NPW1  NPW2 Then
MsgBox ("Die neuen Passwörter stimmen nicht überein!")
TextBox2 = ""
TextBox3 = ""
Exit Sub
End If
'Übertrag des neuen Passworts
Worksheets("Daten").Cells(iUser * 100 + 3, 16) = NPW2
Unload Me
UserForm1.Show
End Sub

Gruß
Rudi
Anzeige
AW: VBA end if
18.01.2012 16:06:24
Frank
Danke jetzt funktioniert es.
Ja die Sicherheit ist bei dieser Lösung eher suboptimal. Werde mir mal noch eine anderen Lösung überlegen müssen. :-)
Gruß
Frank

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige