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

Benutzerpasswörter ändern

Benutzerpasswörter ändern
26.06.2015 21:03:32
hi

Hallo habe mal wieder ein Problem:
In meinem Dokument gibt es mehrere Benutzer die nach dem Anmelden jeweils andere Userformen sehen, da sie verschiedene Rechte haben. Wie kann ich deren Passwörter ändern wenn ich eine Userform erstellt habe, in der man das alte Passwort 2x richtig schreiben muss und dann das neue auch 2x richtig schreiben muss und am Anfang soll der richtige Datensatz über den Benutzernamen gesucht werden? Das Programm soll dann das alte Passwort im Tabellenblatt durch das neue ersetzen.
Leider habe ich nur wenig Ahnung von VBA und deshalb weiß ich nicht wie ich das am besten angehe.
Lg

33
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benutzerpasswörter ändern
26.06.2015 21:11:41
Jack_D
Hallo, habe mal wieder Lust zu helfen.
Wenn du Passwörter ändern willst, musst du erstmal wissen wo diese bisher hinterlegt sind.
Erst diese Info macht es möglich, zu helfen.
Lade doch am besten eine mustermappe hoch.
Lg

AW: Benutzerpasswörter ändern
26.06.2015 21:17:39
Michael
Hi hi,
als Anwender wäre mir für das alte Pw einmal tippen genug.
Schöne Grüße,
Michael

AW: Benutzerpasswörter ändern
26.06.2015 21:20:58
hi
Hallo
Die Passwörter sind momentan auf einem Tabellenblatt hinterlegt und dort sollen sie auch geändert werden. Meine Arbeitsmappe ist leider zu groß :(
Hallo Michael,
ich weiß aber das ist das eine Vorgabe für das Programm.
Lg

Anzeige
AW: Benutzerpasswörter ändern
26.06.2015 21:37:30
sabrina
Hallo
Also die Passwörter sind im Arbeitsblatt "User_aktuell" in dem sie auch wieder geändert werden sollen. Der Benutzername über den gesucht werden soll um wen es sich handelt steht ab D2 und wenn ein User dazukommt soll sich der Bereich dann dementsprechend erweitern. Die Passwörter sind ab C2 hinterlegt.
Danke für deine Mühe!
Lg

AW: Benutzerpasswörter ändern
26.06.2015 21:48:17
Jack_D
Hallo Sabrina
Also
Ich werd nix programmieren ohne ein Muster. Um
Es mit hajos Worten zu sagen "ich Programmier nix für den Müll"
Aber es ist eigentlich recht simpel
1. prüfst du deine Zugriffsrechte (Admin)
2. userauswahl über Listbox (welche bei der load Prozedur der uf aus dem sheet User gefüllt wird)
3. der listindex gibt dir dann zB über Offset das aktuelle Passwort.
4. dieses vergleichst du mit den beiden Eingaben. ( if textbox1 and textbox2 =passAlt then
5. zweite if abfrage ob neues passwort doppelt richtig Eingegeben wurde
6. wenn alle Bedingungen erfüllt sind, Änderung eintragen.
So far so easy.
Grüße

Anzeige
AW: Benutzerpasswörter ändern
26.06.2015 22:03:24
sabrina
Danke ich versuch's!
Hab jetzt auch noch eine Datei erstellt damit du dir vorstellen kannst wie das ungefähr aussieht :) Userbild
Lg

AW: Benutzerpasswörter ändern
26.06.2015 22:05:54
Jack_D
Hallo ich kann mir das schon vorstellen.
Aber ich hab keine Lust eine UF zu erstellen. Zumal meine Termini sicher anders sind.
Daher lade eine Mappe mit dieser Form und dem einen Blatt Nutzer hoch und dann schauen wir weiter
Grüße

Ich komm grad ni klar
26.06.2015 22:58:21
JACK_D
mein Mac kann die Datei nicht öffnen. Er identifiziert sie als defekt.
Also da ich mal davon ausgehe, das du sie richtig hochgeldaden hast, denke ich das da Elemente drin sind mit denen OSX nichts anfangen kann. ..
An der stelle müsste mal ein DOSer aushelfen =)
Grüße

AW: Ich komm grad ni klar
26.06.2015 23:00:55
sabrina
Hallo :)
Okay schade kann man nichts machen :(
Ja das wäre super :)
Lg und vielen Dank für deine Mühe

So kann man es aufbauen
26.06.2015 23:23:11
JACK_D
Nur mal ein Denkansatz
Grüße
Sub pass()
Nutzer = InputBox("Nutzername")
With Worksheets("Tabelle1")
For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(i, 2) = Nutzer Then
S1:
PasswortAlt1 = InputBox("Pass Alt 1")
PasswortAlt2 = InputBox("Pass Alt 2")
If PasswortAlt1 = PasswortAlt2 And PasswortAlt1 = .Cells(i, 3).Value Then
S2:
PassNeu1 = InputBox("Pass Neu 1")
PassNeu2 = InputBox("Pass Neu 2")
If PassNeu1 = PassNeu2 Then
.Cells(i, 3).Value = PassNeu1
Else
MsgBox "neues Passwort nicht identisch"
GoTo S2
End If
Else
MsgBox "Passwort ungültig"
GoTo S1
End If
Else
MsgBox "Kein gültiger Nutzer"
Exit Sub
End If
Next i
End With
End Sub

Anzeige
AW: So kann man es aufbauen
26.06.2015 23:50:55
sabrina
Danke sehr gut :)
Mel' mich sobald ich es ausprobiert habe.
Liebe Grüße

AW: So kann man es aufbauen
27.06.2015 00:04:26
sabrina
Hallo :)
Habs nun ausprobiert!
Funktioniert noch nicht ganz in meinem Programm, aber ist schon ;mal ein super Ansatz - danke dafür.
Aber wenn die msgbox "Passwort nicht identisch" aufscheint, weil man die Passwörter falsch eingegeben hat, dann lässt sich diese nicht mehr schließen weil das ja dann eigentlich eine endlose Schleife wäre - liege ich in dieser Annahme richtig? :) Weil ich musst meine gesamte Datei schließen um wieder rauszukommen, weil sich die msgbox nicht schließen ließ.
So habe ich den Code jetzt 'mal angepasst:
Private Sub cmd_ändern_Click()
Nutzer = txt_name
With Worksheets("User_aktuell")
For i = 2 To .Cells(Rows.Count, 2).End(xlUp).Row
If .Cells(i, 2) = Nutzer Then
S1:
PasswortAlt1 = txt_passwortalt
PasswortAlt2 = txt_passwortaltwiederholen
If PasswortAlt1 = PasswortAlt2 And PasswortAlt1 = .Cells(i, 3).Value Then
S2:
PassNeu1 = txt_passwortneu
PassNeu2 = txt_passwortneuwiederholen
If PassNeu1 = PassNeu2 Then
.Cells(i, 3).Value = PassNeu1
Else
MsgBox "neues Passwort nicht identisch"
GoTo S2
End If
Else
MsgBox "Passwort ungültig"
GoTo S1
End If
Else
MsgBox "Kein gültiger Nutzer"
Exit Sub
End If
Next i
End With
End Sub

Lg sabrina

Anzeige
AW: So kann man es aufbauen
27.06.2015 00:13:40
JACK_D
Hallo Sabrina
Aber wenn die msgbox "Passwort nicht identisch" aufscheint, weil man die Passwörter falsch eingegeben hat, dann lässt sich diese nicht mehr schließen weil das ja dann eigentlich eine endlose Schleife wäre 
ja das siehst du ganz richtig. Das ist natürlich nicht ganz optimal.
Du kannst das GoTo auch durch exit Sub ersetzen. Oder auch die SUB nach der 2. Falscheingabe beenden (hierzu müsste man noch einen Counter einfügen)
Ansonsten musst du die Datei auch nicht ganz schliessen, sondern kannst mit STRG + Pause den Code unterbrechen.
Aber wie gesagt, es ist nur ein Ansatz, keine Komplettlösung.
Grüße

Anzeige
AW: So kann man es aufbauen
27.06.2015 00:18:45
sabrina
Hi
Okay hab es jetzt durch Exit Sub ersetzt.
Danke gut zu wissen, dass auch diese Möglichkeit besteht da wieder rauszukommen :)
Ja ist schon klar.
lg

AW: So kann man es aufbauen
27.06.2015 09:53:40
Herbert Grom
Hallo Sabrina,
bei mir hat es mit dem nachfolgenden Code, den ich in die UF geschrieben habe, einwandfrei geklappt.
Der Anwender muss zuerst alle 5 Eingabefelder ausfüllen und wenn alles stimmt, wird das alte Pw mit dem neuen überschrieben. Probiers mal.
Servus
Option Explicit
Public sPwVorhanden$, iPwNr%, sPwAlt1$, sPwAlt2$, sPwNeu1$, sPwNeu2$, sName$
Private Sub cmd_abbrechen_Click()
Unload Me
'admin.Show
End Sub

Private Sub cmd_ändern_Click()
iPwNr = Application.Match(sName, Sheets("Tabelle1").Range("C1:C10"), 0)
sPwVorhanden = Sheets("Tabelle1").Range("C" & iPwNr).Value
If sPwAlt1 = sPwAlt2 And sPwNeu1 = sPwNeu2 Then
Sheets("Tabelle1").Range("C" & iPwNr).Value = sPwNeu1
End If
Unload Me
End Sub

Private Sub txt_name_Change()
sName = txt_name.Text
End Sub

Private Sub txt_passwortalt_Change()
sPwAlt1 = txt_passwortalt.Text
End Sub

Private Sub txt_passwortaltwiederholen_Change()
sPwAlt2 = txt_passwortaltwiederholen.Text
End Sub

Private Sub txt_passwortneu_Change()
sPwNeu1 = txt_passwortneu.Text
End Sub

Private Sub txt_passwortneuwiederholen_Change()
sPwNeu2 = txt_passwortneuwiederholen.Text
End Sub

Anzeige
AW: So kann man es aufbauen
27.06.2015 16:22:40
sabrina
Hallo Herbert,
danke ich hab's versucht, aber leider ist das noch nicht ganz das, was ich möchte. Es soll bei falscher Eingabe des alten Passworts eine Messagebox erscheinen die sagt, dass das PW falsch ist und wenn die beiden Passwörter, entweder die alten oder die neuen, nicht übereinstimmen dann soll man ebenfalls darüber via Messagebox benachrichtigt werden.
Dazu brauch' ich aber noch mehr Wenn-Schleifen, oder?
Lg

AW: So kann man es aufbauen
27.06.2015 17:46:29
sabrina
Hallo nochmal :)
Ich habe deinen Code jetzt noch einmal etwas angepasst und er funktioniert super! Auch das mit den vorher erwähnten msboxen wenn man die PW nicht 2x richtig schreibt klappt :)
Einzige Bedingung die mir noch fehlt ist folgende:
Wenn man den User falsch eingibt also den Benutzernamen sollte auch ein Fenster aufscheinen wo steht "User nicht vorhanden".
Könntest du mir dabei noch helfen wo ich das am besten einbaue?
Mein Code bisher:
Option Explicit
Public sPwVorhanden$, iPwNr%, sPwAlt1$, sPwAlt2$, sPwNeu1$, sPwNeu2$, sName$
Private Sub cmd_abbrechen_Click()
Unload Me
admin.Show
End Sub

Private Sub cmd_ändern_Click()
Dim zeile As Integer
iPwNr = Application.Match(sName, Sheets("User_aktuell").Range("C1:C10"), 0)
sPwVorhanden = Sheets("User_aktuell").Range("C" & iPwNr).Value
If sPwAlt1 = sPwAlt2 And sPwNeu1 = sPwNeu2 Then
Sheets("User_aktuell").Range("C" & iPwNr).Value = sPwNeu1
Else: MsgBox ("Passwörter stimmen nicht überein!")
End If
Unload Me
End Sub

Private Sub txt_name_Change()
sName = txt_name.Text
End Sub

Private Sub txt_passwortalt_Change()
sPwAlt1 = txt_passwortalt.Text
Me.txt_passwortalt.PasswordChar = "*"
End Sub

Private Sub txt_passwortaltwiederholen_Change()
sPwAlt2 = txt_passwortaltwiederholen.Text
Me.txt_passwortaltwiederholen.PasswordChar = "*"
End Sub

Private Sub txt_passwortneu_Change()
sPwNeu1 = txt_passwortneu.Text
Me.txt_passwortneu.PasswordChar = "*"
End Sub

Private Sub txt_passwortneuwiederholen_Change()
sPwNeu2 = txt_passwortneuwiederholen.Text
Me.txt_passwortneuwiederholen.PasswordChar = "*"
End Sub
lg

Anzeige
AW: So kann man es aufbauen
27.06.2015 17:56:52
Herbert Grom
Hallo Sabrina,
allmählich wird es lästig, dass Du ständig noch einen nachschiebst! Kannst Du denn nicht gleich sagen, was Du alles haben willst und nicht so Kleckerlesweise hinterher! Also, jetzt überleg mal, ob das dann wirklich alles ist, oder ob es noch etwas zu prüfen etc. gibt.
Servus

AW: So kann man es aufbauen
27.06.2015 18:02:29
sabrina
Hallo Herbert!
sorry ist mir leider erst später aufgefallen dass das noch fehlt & danke für deine Hilfe!
Nein das ist das letzte was noch notwendig ist :)
Liebe Grüße
Sabrina

AW: So kann man es aufbauen
27.06.2015 18:05:10
Herbert Grom
Also, noch einmal mit Gefühl! ;o)=)
Private Sub cmd_ändern_Click()
On Error GoTo WrongName
iPwNr = Application.Match(sName, Sheets("Tabelle1").Range("C1:C10"), 0)
sPwVorhanden = Sheets("Tabelle1").Range("C" & iPwNr).Value
On Error GoTo ende
If sPwAlt1 <> sPwAlt2 Then
MsgBox "Die beiden alten Passwörter stimmem nicht überein!", vbCritical, "Passwort falsch" _
GoTo ende
End If
If sPwNeu1 <> sPwNeu2 Then
MsgBox "Die beiden neuen Passwörter stimmem nicht überein!", vbCritical, "Passwort falsch" _
GoTo ende
End If
If sPwAlt1 = sPwAlt2 And sPwNeu1 = sPwNeu2 Then
Sheets("Tabelle1").Range("C" & iPwNr).Value = sPwNeu1
End If
Unload Me
GoTo ende
WrongName:
MsgBox "Falscher Benutzername!", vbCritical, "Benutzername falsch"
ende:
End Sub

Servus

Anzeige
AW: So kann man es aufbauen
27.06.2015 18:31:40
sabrina
Hallo
Super danke, aber da wird ja jetzt eigentlich gar nicht geprüft ob die alten Passwörter mit dem alten Passwort aus der Tabelle übereinstimmen, weil auch wenn man bei PW alt und PW alt wiederholen ein falsches Passwort eingibt wird es trotzdem durch das neue ersetzt. Oder funktioniert das nur bei mir falsch? :(
Liebe Grüße

AW: So kann man es aufbauen
27.06.2015 18:31:46
sabrina
Hallo
Super danke, aber da wird ja jetzt eigentlich gar nicht geprüft ob die alten Passwörter mit dem alten Passwort aus der Tabelle übereinstimmen, weil auch wenn man bei PW alt und PW alt wiederholen ein falsches Passwort eingibt wird es trotzdem durch das neue ersetzt. Oder funktioniert das nur bei mir falsch? :(
Liebe Grüße

AW: So kann man es aufbauen
27.06.2015 18:31:54
sabrina
Hallo
Super danke, aber da wird ja jetzt eigentlich gar nicht geprüft ob die alten Passwörter mit dem alten Passwort aus der Tabelle übereinstimmen, weil auch wenn man bei PW alt und PW alt wiederholen ein falsches Passwort eingibt wird es trotzdem durch das neue ersetzt. Oder funktioniert das nur bei mir falsch? :(
Liebe Grüße

AW: So kann man es aufbauen
27.06.2015 18:31:59
sabrina
Hallo
Super danke, aber da wird ja jetzt eigentlich gar nicht geprüft ob die alten Passwörter mit dem alten Passwort aus der Tabelle übereinstimmen, weil auch wenn man bei PW alt und PW alt wiederholen ein falsches Passwort eingibt wird es trotzdem durch das neue ersetzt. Oder funktioniert das nur bei mir falsch? :(
Liebe Grüße

AW: So kann man es aufbauen
27.06.2015 18:11:53
Herbert Grom
Hallo Sabrina,
jetzt ist sogar mir noch etwas aufgefallen, nämlich, dass das wiederholen des alten Passwortes gar keinen Sinn macht, denn das kann man ja mit dem Vorhandenen abgleichen. Ich würde das raus machen. Weniger ist immer mehr!
Servus

AW: So kann man es aufbauen
27.06.2015 18:35:01
sabrina
Hallo Herbert,
stimmt, aber es wird mit dem Vorhandenen durch den Code nicht abgeglichen. Es wird nur geprüft ob die beiden Passwörter (das Alte und das Alte wiederholte) übereinstimmen.
Lg

AW: So kann man es aufbauen
27.06.2015 18:36:12
sabrina
Hallo Herbert,
stimmt, aber es wird mit dem Vorhandenen durch den Code nicht abgeglichen. Es wird nur geprüft ob die beiden Passwörter (das Alte und das Alte wiederholte) übereinstimmen.
Lg

AW: So kann man es aufbauen
27.06.2015 18:36:31
sabrina
Hallo Herbert,
stimmt, aber es wird mit dem Vorhandenen durch den Code nicht abgeglichen. Es wird nur geprüft ob die beiden Passwörter (das Alte und das Alte wiederholte) übereinstimmen.
Lg

AW: So kann man es aufbauen
27.06.2015 17:53:55
Herbert Grom
Hallo Sabrina,
ändere das entsprechende Makro wie folgt:
Private Sub cmd_ändern_Click()
On Error GoTo ende
iPwNr = Application.Match(sName, Sheets("Tabelle1").Range("C1:C10"), 0)
sPwVorhanden = Sheets("Tabelle1").Range("C" & iPwNr).Value
If sPwAlt1 <> sPwAlt2 Then
MsgBox "Die beiden alten Passwörter stimmem nicht überein!", vbCritical, "Passwort falsch" _
GoTo ende
End If
If sPwNeu1 <> sPwNeu2 Then
MsgBox "Die beiden neuen Passwörter stimmem nicht überein!", vbCritical, "Passwort falsch" _
GoTo ende
End If
If sPwAlt1 = sPwAlt2 And sPwNeu1 = sPwNeu2 Then
Sheets("Tabelle1").Range("C" & iPwNr).Value = sPwNeu1
End If
Unload Me
ende:
End Sub
Servus

AW: So kann man es aufbauen
27.06.2015 20:42:39
sabrina
Hallo :)
Kannst du mir sagen wo da noch der Wurm drinnen ist?
Option Explicit
Public sPwVorhanden$, iPwNr%, sPwAlt1$, sPwAlt2$, sPwNeu1$, sPwNeu2$, sName$
Private Sub cmd_abbrechen_Click()
Unload Me
adminmenue.Show
End Sub

Private Sub cmd_ändern_Click()
On Error GoTo WrongName
iPwNr = Application.Match(sName, Sheets("User_aktuell").Range("C1:C10"), 0)
sPwVorhanden = Sheets("User_aktuell").Range("C" & iPwNr).Value
On Error GoTo ende
If sPwAlt1 <> sPwAlt2 Then
MsgBox "Die beiden alten Passwörter stimmem nicht überein!", vbCritical, "Passwort falsch" _
_
GoTo ende
End If
If sPwNeu1 <> sPwNeu2 Then
MsgBox "Die beiden neuen Passwörter stimmem nicht überein!", vbCritical, "Passwort falsch" _
_
GoTo ende
End If
If sPwAlt1 = sPwAlt2 And sPwNeu1 = sPwNeu2 Then
Sheets("User_aktuell").Range("C" & iPwNr).Value = sPwNeu1
Sheets("User_Original").Range("C" & iPwNr).Value = sPwNeu1
End If
Unload Me
GoTo ende
WrongName:
MsgBox "Falscher Benutzername!", vbCritical, "Benutzername falsch"
ende:
End Sub

Private Sub txt_name_Change()
sName = txt_name.Text
End Sub

Private Sub txt_passwortalt_Change()
sPwAlt1 = txt_passwortalt.Text
Me.txt_passwortalt.PasswordChar = "*"
End Sub

Private Sub txt_passwortaltwiederholen_Change()
sPwAlt2 = txt_passwortaltwiederholen.Text
Me.txt_passwortaltwiederholen.PasswordChar = "*"
End Sub

Private Sub txt_passwortneu_Change()
sPwNeu1 = txt_passwortneu.Text
Me.txt_passwortneu.PasswordChar = "*"
End Sub

Private Sub txt_passwortneuwiederholen_Change()
sPwNeu2 = txt_passwortneuwiederholen.Text
Me.txt_passwortneuwiederholen.PasswordChar = "*"
End Sub
Lg

AW: So kann man es aufbauen
27.06.2015 21:08:00
Herbert Grom
Hallo Sabrina,
alle Striche hinter "Passwort falsch" müssen weg!
Servus

AW: So kann man es aufbauen
27.06.2015 21:25:42
sabrina
Hallo!
Achja stimmt.
Vielen Dank für deine Hilfe und Geduld :)
Liebe Grüße und schönen Abend

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige