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

PasswordChar

Forumthread: PasswordChar

PasswordChar
07.11.2003 15:33:27
meike
Hallo Ihr Lieben,

Ich möchte ein Makro Passwort-schützen und habe deshalb eine Inputbox vorgeschaltet, um ein Kennwort abzufragen. Jetzt habe ich in der VBA-Hilfe gefunden, dass es PasswordChar gibt, so dass man sich ein Ersatzzeichen auswählen kann und bei der Eingabe des Passwortes kein Text erkennbar ist, sondern nur *** o.ä.

In der Hilfe und in meinen schlauen Büchern habe ich aber leider kein Bsp gefunden. Könnt Ihr mir sagen, wie ich diese Zeile ergänzen muss, damit bei der Eingabe des Passworts nur Sternchen zu sehen sind?!

Wär Euch echt dankbar...

pw = InputBox("Bitte geben Sie das Passwort ein:")

Vielen Dank, Meike
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
nur mit Userform/TextBox
07.11.2003 15:36:11
ChrisL
Hi Meike

Dies geht bei einer InputBox nicht. Dazu brauchst du ein Userform mit TextBox. In der TextBox kannst du die Eigenschaft PasswordChar setzen.

Gruss
Chris
AW: nur mit Userform/TextBox
07.11.2003 15:39:26
Hajo_Zi
Hallo Chris

siehe mein Beispiel

Bitte keine Mail, Probleme sollten im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


Anzeige
AW: nur mit Userform/TextBox
07.11.2003 16:07:43
ChrisL
Hi Hajo

Kann im Geschäft leider keine Zip öffnen, aber werde es mir übers Wochenende mal anschauen.

Gruss
Chris
AW: nur mit Userform/TextBox
07.11.2003 16:12:48
Hajo_Zi
Hallo Chris

es sind zwei Dateien darum gezipt. Die eine für 97 und die andere für 2000 ?? und Xp

Bitte keine Mail, Probleme sollten im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


Anzeige
Problem mit Userform/TextBox
07.11.2003 16:19:05
Meike
Hey Chris,

habe Deinen Rat befolgt und ne Userform gebastelt, aber irgendwie funktioniert die Wertübergabe nicht...

Formular-Code sieht so aus:
Option Explicit


Private Sub ok_Click()
pw = Passwort
Unload Me
End Sub



Private Sub abbrechen_Click()
Unload Passwort
bolAbbruch4 = True
End Sub


Sub Passwort_Initialize()
bolAbbruch4 = False
End Sub


Im Makro folgender Aufruf:
bolAbbruch4 = False
Passwort.Show
Msgbox "Eingegebenes Passwort: " & pw

- Wenn ich mir jetzt in der letzten Zeile das Passwort anzeigen lassen will, krieg ich immer nen leeren String zurück?!
Aber warum, ich hab' pw doch ganz oben im Modul als eine globale Public Variable(String) definiert?

- Und wenn ich auf Abbrechen klicke, dann krieg ich immer: "Objekt kann weder ge- noch entladen werden!"

???
Kennst Du des Rätsels lösung?

Gruß,
Meike
Anzeige
AW: Problem mit Userform/TextBox
07.11.2003 16:23:29
ChrisL
Hi Meike

Hast du sowohl dem Userform als auch der TextBox den gleichen Namen 'Passwort' gegeben?

Generell würde ich darauf achten, Namen zu verwenden, die sicher nicht als Befehl vorkommen z.B. ufPasswort und chbPasswort

Ansonsten muss ich nochmals schauen.

Gruss
Chris
Anzeige
AW: Problem mit Userform/TextBox
07.11.2003 16:44:11
Meike
Hallo Chris & Hajo,

Ich hab mir Eure Ratschläge zu Herzen genommen und auch Hajos File angeschaut (da passiert im Prinzip ja das gleiche).

UserForm-Code:
----------------------------
Option Explicit


Private Sub ok_Click()
pw = Passwort_1.Value
Unload Me
End Sub

----------------------------
Modul-Code:

Option Explicit
Public pw As String
----------------------------

Makro im Modul:

Passwortabfrage.Show
MsgBox "Passwort: " & pw

----------------------------

Das ist doch eine gaaanz simple Passwortübergabe vom Formular an das Makro.
Warum ist der String pw - egal was ich eingebe - immer leer??

?Meike?
Anzeige
AW: Problem mit Userform/TextBox
07.11.2003 16:51:02
ChrisL
Hi Meike

Anhand deines Codes erkenne ich nichts falsches. Vielleicht kannst du mal die Datei in den Anhang stellen.

Gruss
Chris
AW: Problem mit Userform/TextBox
07.11.2003 17:03:08
Meike
Hey Chris,

also hier mal die Datei:
https://www.herber.de/bbs/user/1799.xls

Es gibt nur ein Makro und das Passwort heißst: test

Inhaltlich funktioniert natürlich dann gar nichts, weil ich alles andere rausgeschmissen habe, aber es geht mir auch einfach nur darum, dass ich mal eine von mir getätigte Passworteingabe angezeigt bekomme...

Danke für die ganze Zeit und Mühe...
Meike
Anzeige
AW: Problem mit Userform/TextBox
07.11.2003 17:26:49
ChrisL
Hi Meike

Die Variable ist leer, weil du sie zwar als Public deklarierst, aber anschliessend im Sub wieder deklarierst.

Sub Kalkulationsdaten_uebernehmen()
'Dim pw As String <--- entfernen

Gruss
Chris
DANKE - hätt' ich allein nie gefunden!!! (o.T.)
10.11.2003 14:11:59
Meike
*
AW: Problem mit Userform/TextBox
07.11.2003 16:23:32
Hajo_Zi
Hallo Meike

siehe Dir mal das Beispiel an. Ist nun beim öffnen eingebunden, eigentlich hat Excel dies schon.

Passwort ist "Test"

https://www.herber.de/bbs/user/1798.xls

Bitte keine Mail, Probleme sollten im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


Anzeige
AW: Inputbox und Anzeige ******
07.11.2003 15:38:54
Hajo_Zi
Hallo Meike

es ist nicht so einfach. Ich habe Heute gerade mit Michael Schwimmer darüber in der NG von MS geschrieben in der Anlage hast Du einen Code von ihm.

https://www.herber.de/bbs/user/1797.zip

Bitte keine Mail, Probleme sollten im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


Anzeige
;
Anzeige

Infobox / Tutorial

Passwortabfrage in VBA mit PasswordChar


Schritt-für-Schritt-Anleitung

Um eine Passwortabfrage in VBA durchzuführen und dabei das PasswordChar-Feature zu nutzen, folge diesen Schritten:

  1. UserForm erstellen:

    • Öffne den VBA-Editor (Alt + F11).
    • Füge ein neues UserForm hinzu (Einfügen > UserForm).
    • Füge eine TextBox hinzu (Toolbox > TextBox).
    • Setze die Eigenschaft PasswordChar der TextBox auf * oder ein anderes Zeichen deiner Wahl.
  2. Steuerelemente hinzufügen:

    • Füge zwei Schaltflächen hinzu: eine für "OK" und eine für "Abbrechen".
    • Benenne die Schaltflächen sinnvoll, z.B. ok und abbrechen.
  3. Code für die UserForm:

    • Doppelklicke auf die Schaltfläche "OK" und füge den folgenden Code hinzu:
    Private Sub ok_Click()
       pw = Passwort_1.Value ' Passwort_1 ist der Name der TextBox
       Unload Me
    End Sub
    • Für die "Abbrechen"-Schaltfläche:
    Private Sub abbrechen_Click()
       Unload Me
    End Sub
  4. Modul erstellen:

    • Füge ein neues Modul hinzu (Einfügen > Modul).
    • Deklariere die öffentliche Variable pw:
    Public pw As String
  5. Passwortabfrage aufrufen:

    • Füge den Code hinzu, um die UserForm zu zeigen und das Passwort abzufragen:
    Sub PasswortAbfrage()
       Passwort.Show
       MsgBox "Eingegebenes Passwort: " & pw
    End Sub

Häufige Fehler und Lösungen

  • Leerer Passwort-String: Wenn du beim Anzeigen des Passworts immer einen leeren String erhältst, stelle sicher, dass du die Variable pw nicht innerhalb eines Subs erneut deklarierst. Der Code sollte Public pw As String im Modul und pw = Passwort_1.Value im UserForm verwenden.

  • Fehler beim Entladen der UserForm: Wenn du die Fehlermeldung "Objekt kann weder ge- noch entladen werden" erhältst, überprüfe, ob die UserForm korrekt referenziert wird und dass keine weiteren Abhängigkeiten bestehen.


Alternative Methoden

Falls du kein UserForm verwenden möchtest, kannst du auch eine InputBox verwenden, allerdings ohne die Möglichkeit, ein PasswordChar zu setzen. Hier ist ein einfaches Beispiel:

Sub PasswortAbfrageInputBox()
    Dim pw As String
    pw = InputBox("Bitte geben Sie das Passwort ein:")
    MsgBox "Eingegebenes Passwort: " & pw
End Sub

Das ist jedoch weniger sicher, da das Passwort im Klartext eingegeben wird.


Praktische Beispiele

Hier ist ein komplettes Beispiel für eine UserForm mit PasswordChar:

' Modul-Code
Option Explicit

Public pw As String

Sub PasswortAbfrage()
    Passwort.Show
    MsgBox "Eingegebenes Passwort: " & pw
End Sub

' UserForm-Code
Private Sub ok_Click()
    pw = Passwort_1.Value
    Unload Me
End Sub

Private Sub abbrechen_Click()
    Unload Me
End Sub

Tipps für Profis

  • Verwende aussagekräftige Namen für Steuerelemente, um Verwirrung zu vermeiden. Zum Beispiel txtPasswort für die TextBox.
  • Achte darauf, dass dein VBA-Projekt die richtige Version verwendet, um Inkompatibilitäten zu vermeiden.
  • Experimentiere mit verschiedenen PasswordChar-Zeichen, um die Benutzererfahrung zu verbessern.

FAQ: Häufige Fragen

1. Kann ich das PasswordChar auch in einer InputBox verwenden?
Leider unterstützt die InputBox in VBA keine PasswordChar-Funktionalität. Du musst ein UserForm mit einer TextBox verwenden.

2. Wie kann ich sicherstellen, dass das Passwort korrekt eingegeben wurde?
Du kannst das eingegebene Passwort mit einem vordefinierten Passwort vergleichen und entsprechende Rückmeldungen geben.

3. Ist es sicher, Passwörter in VBA zu speichern?
Es ist nicht empfehlenswert, Passwörter in Klartext zu speichern. Verwende stattdessen Hash-Algorithmen oder speichere sie in einer sicheren Datenbank.

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