Anzeige
Archiv - Navigation
1488to1492
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

Bei Passwort Abfrage Leerzeichen ignorieren

Bei Passwort Abfrage Leerzeichen ignorieren
28.04.2016 14:15:32
udo
Hallo Forum,
könntet ihr mir hierbei bitte auf die Sprünge helfen.
Habe in der Recherche eine Passwortabfrage gefunden, die meinen Bedürfnissen recht nahe kommt. Den Code hab ich auf meinen Zellbereich angepasst.
Sieht wie folgt aus:
Sub Test()
On Error GoTo Fehler
n = InputBox("Mitarbeiter( ... )", "Test", "Vorname Nachname")
P = InputBox("Passwort")
Set A = Sheets("IN").Range("Z20:Z40").Find(n)
Set B = Sheets("IN").Range("AA20:AA40").Find(P)
'ich würde gerne vorab eine Prüfung haben die die Eingabe
'in der ersten Inputbox in sofern prüft ob der entspr. USER auch in
'der Liste aus Set A aufgeführt ist, wenn nicht, oder Eintrag "",
'oder Eintrag aus der Vorgabe "Vorname Nachname" ,
'dann die Prozedur einfach per Exit Suub beenden ... damit ist dann schon
'mal gewährleistet dass nur berechtigte User die Chance haben ihr
'Passwort einzugeben und im Weiteren damit den Bereich letzlich freizuschalten.
'gibt es dabei auch die Möglichkeit die Passworteingabe mit Sternchen
'zu überblenden Eigenschaften der Inputbox ?
If A.Row = B.Row Then
' und ...
Else
MsgBox "Benutzer oder Passwort falsch"
' und ...
End If
Exit Sub
Fehler:
End Sub
könntet Ihr mir dabei bitte helfen
LG udo

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei Passwort Abfrage Leerzeichen ignorieren
28.04.2016 14:20:37
selli
hallo udo,
wie willst du verhindern, dass der user die datei ohne makros startet und die bereiche a und b sehen kann?
gruß
selli

Also davon jetzt mal völlig abgesehen, dass ...
28.04.2016 14:32:01
jetzt
einige USER sich die Mühe machen da Einsicht zu nehmen ( diese Bereiche sind bislang einfach ausgeblendet - das reicht für unsere Bedürfnisse eigentlich völlig aus - is nichts streng geheimes darin verborgen, von daher, hast aber natürlich recht ... )
Könnte ich doch bestimmt das SET A auch auf ein anderes Workbook im Netzwerk verweisen und damit in der eigentlichen USER Tabelle die Möglichkeiten und Antworten erst gar nicht zu implementieren ?
Dann würde diese Anweisung in einem anderen Workbook prüfen oder ?
LG Udo

Anzeige
AW: Also davon jetzt mal völlig abgesehen, dass ...
28.04.2016 14:43:36
jetzt
hallo udo,
nochmal zu deiner frage:
vergleichen ob ein passwort zum user passt kannst du mit vlookup(), was dem SVERWEIS in der tabelle entspricht.
aber vielleicht sparst du dir auch die mühe, wenn du mal so eine xlsm-datei entpackst und die struktur dahinter ansiehst. mit schrecken wirst du feststellen, was man da alles sehen und letztlich auch verändern kann (ohne die datei auch nur auszuführen).
wenn du bereiche vor einsichtnahme schützen willst kannst du das nur wirksam in entsprechend freigegebenen ordnern im OS machen und dann natürlich die datei splitten.
in excel etwas verbergen zu wollen ist zwecklos.
gruß
selli

Anzeige
ok, soweit auch lieben Dank, nur zur ursprüngl. ..
28.04.2016 15:12:48
udo
Frage nochmal, wie müsste entsprechende Anweisung aussehen die die Leerzeichen aus der Bezugsliste ignoriert, da würde ich gerne dennoch festhalten, wie gesagt, für unsere Ansprüchen reichen die entsprechende Maßnahmen völlig aus ...
Mir gehts dabei tatsächlich nur darum das wenn Jemand versucht mit Leerer Zeile oder Vorgabetext weiter zu klicken , dies dann zu stoppen ( per Exit_Suub ).
Wie müsste ich das schreiben , 1 Satz ?
LG udo

AW: ok, soweit auch lieben Dank, nur zur ursprüngl. ..
28.04.2016 15:15:48
selli
hallo udo,
bsp.: If n = "" then exit sub
gruß
selli

ja, klasse, doch so einfach ...
28.04.2016 15:27:20
udo
und herzlichen Dank Selli, Ich dachte selber viel zu kompliziert ... und hatte es auch an der falschen Stelle gesetzt ... deinen Ansatz habe ich gleich unter die erste Zeile mit n= ...
direkt darunter gesetzt ...
jetzt tut es, schön ! , lieben Dank nochmal
Und wie gesagt, für versierte Anwender ist diese kleine Hürde sicher kein Problem, nur für unsere
Bedürfnisse reicht das völlig aus ...
Danke nochmal !
Grüße
udo

Anzeige
Ah, noch eine kleine dazugehörige Frage ...
28.04.2016 15:43:39
udo
wie sähe eine Anweisung für zB. Set A aus wenn ich auf ein anderes Workbook verweise.
Ginge das mit
Set A = Workbook("Planung").Sheets("Stammdaten").Range("AF16:AF215").Find(n)
so gehts noch nicht, wie müsste ich Workbook... da richtig reinschreiben ?
Damit wäre es für mich oberperfekt,
LG udo

teilweise gelöst , aber an einer Stelle hängts ...
28.04.2016 16:39:26
udo
... Ich habe noch daran herum gebaut mit meinen bescheidenen Kenntnissen
sieht wie folgt aus :
Sub Passwort_IN2()
'On Error GoTo Ende:
n = InputBox("Mitarbeiter ...      (  bitte jew. nur die ersten 3 Buchstaben vom Vor- und  _
Nachnamen angeben  )", , "Vorname Nachname")
If n = "" Then GoTo Ende:
If n = "Vorname Nachname" Then GoTo Ende:
p = InputBox("Passwort( ... )", , "")
If p = "" Then GoTo Ende:
Set A = Workbooks("Planung.xlsm").Sheets("Stammdaten").Range("AF16:AF215").Find(n)
Set B = Workbooks("Planung.xlsm").Sheets("Stammdaten").Range("AG16:AG215").Find(p)
If A.Row = B.Row Then
MsgBox "Benutzer oder Kennwort richtig"
'und ...
Else
MsgBox "Benutzer oder Passwort falsch"
'und ...
End If
Exit Sub
Ende:
End Sub

Jetzt stoppt er bei If A.Row = B.Row Then
?
Muss ich alles ganz anderst bezeichnen wenn ich auf ein anderes Workbook verweise ?
wäre klasse wenn ihr mir dazu nochmal nen Tip hättet
LG Udo

Anzeige
Objektvariable nicht definiert ?
28.04.2016 16:45:17
udo
kam als Fehler , sag mir aber leider nichts .... ?

AW: Objektvariable nicht definiert ?
28.04.2016 17:05:51
Daniel
Hi
das Problem dürfte sein, dass entweder der Name oder das Passwort nicht gefunden wurden.
das gibt bei .Find zwar keinen Fehlerabbruch, aber der Objektvariablen wird kein Zellbereich zugewiesen.
Und ohne Zellbereich gibt es keine Zeilennummer, daher dann der Fehlerabbruch, wenn du die Zeilennummer abfragst.
ausserdem funktioniert das ganze nur, wenn nicht nur die Namen, sondern auch die Passwörter eindeutig sind.
Sollten zwei Personen das gleiche Passwort haben, kann es bei deiner Logik dazu kommen, dass die Meldund Passwort falsch kommt, weil es bei einem anderen Namen zuerst gefunden wurde und dann die Zeilennummern nicht übereinstimmen.
probiers mal so
Sub Passwort_IN2()
n = InputBox("Mitarbeiter ...  (... )", , "Vorname Nachname")
If n = "" Then Exit Sub
If n = "Vorname Nachname" Then Exit Sub
p = InputBox("Passwort( ... )", , "")
If p = "" Then Exit Sub
Set a = Workbooks("Planung.xlsm").Sheets("Stammdaten").Range("AF16:AF215").Find(n, lookat:= _
xlWhole)
If Not a Is Nothing Then
If a.Offset(0, 1).Value = p Then
MsgBox "Benutzer oder Kennwort richtig"
'und...
Exit Sub
End If
End If
MsgBox "Benutzer oder Passwort falsch"
'und ...
End Sub
Gruß Daniel

Anzeige
schon mal herzl Dank Daniel, prüfe es später ...
28.04.2016 17:18:28
udo
wenn ich wieder zurück bin, muss schnell los, melde mich aber noch
Danke dir und auch Selli
Grüße
udo

besten Dank Daniel , jetzt passt es sehr gut ...
29.04.2016 13:16:30
udo
wollte zuerst nicht richtig, war immer Fehler drinne, hab dann heraus gefunden dass es daran lag dass ich meine Werte aus Spalte AF ( Set A ) per Formel erzeugte ( =Links(...,3)&Links(...,3) )
also aus Zwei Spalten für Vor- und Nachname ... davon in AF also jew die ersten drei Buchstaben als Benutzerkennung. Ich hab dann in AF mal die Kennung ( 3/3 ) mal händisch eingegeben zum Testen , dann klappte es.
also Lasse ich vor der Prozedur n=... noch Range("Ah:Ah") = Range("Af:Af").Value
laufen, und übernehme damit die Auswertung der Formel in Af nach Ah als Wert ...
Dann dein Code noch in Set A auf Ah geändert, jetzt läufts wunderbar ...
Daher auch großen Dank an Dich und Euch Alle nochmal für Eure Unterstützung !
Habt mir echt geholfen, danke
LG udo

Anzeige
Dateizugang nur mit Passwort
28.04.2016 21:45:29
Peter
Hallo Udo,
ich habe mal ein Verfahren entwickelt, bei dem Deine Wünsche eigentlich abgedeckt sein müßten. Hier meine Musterdatei:
https://www.herber.de/bbs/user/105327.xlsm
Der Benutzer wird zunächst aufgefordert, die Makros zu aktivieren, danach kommt er in die Anmeldemaske. Hier muss Name, Vorname und Passwort richtig eingegeben werden, erst dann werden beim Betätigen des Anmeldebuttons die eigentlichen Arbeitsblätter freigegeben. Namen und Passworte (7 Stck.) habe ich im Bereich Z20 bis AC40 in dem Anmeldeblatt eingetragen. Das Blatt muss zunächst entschützt werden, um die genannten Spalten einzublenden. Dazu sollte der Auto-Makro beim Öffnen nicht ausgeführt werden. Dies erreichst Du, wenn Du beim Öffnen die Umschalt-Taste gedrückt hältst. Der Schutz könnte noch durch ein Password für das Anmeldeblatt (Sheets(..).protect Password:="xyz" in den Makros)erweitert werden.
Bitte mal ausprobieren und Rückmeldung.
Mit freundlichem Gruß
Peter Kloßek

Anzeige
schon mal herzl. Dank, prüfe eure Tipps jetzt ...
29.04.2016 09:46:42
udo
melde mich später nochmal ...
LG udo

besten Dank Peter ....
29.04.2016 10:21:16
udo
einige deiner Ansätze habe / hatte ich bereits in meinem Blatt integriert .
Deine zusätzl Formel in der Zelle die prüft ob Eingabefelder leer sind war eben das Thema das ich in der Frage hier im Thread stellte. Find ich gut. Ich frage eben per Inputboxen ab, aber gut , s gibt immer mehrere Wege. Werd ich mal überlegen ob das so für mich besser wäre ...
Auf alle Fälle großen Dank ( an Euch Alle ) ...
prüfe jetzt noch Daniels Ansatz zu meinen Inputboxen ..
LG udo

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige