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

Forumthread: Passwort in Inputbox als Sternchen

Passwort in Inputbox als Sternchen
27.03.2017 08:15:32
cH_rI_sI
Guten Morgen!
Ich möchte bei meinem Makro "Unprotect" das einzugebenede Passwort mit Sternchen darstellen - dazu habe ich mir das Beispiel von Hajo runtergeladen:
https://www.herber.de/bbs/user/112444.xlsm
Wie kann ich das in mein bestehendes Makro integrieren?
Anbei noch mein Coding:
Sub Unprotect()
Dim objWorksheet As Worksheet
Dim strPassword As String
strPassword = InputBox("Enter password:", "Password")
Application.ScreenUpdating = False
If StrPtr(strPassword) = 0 Then Exit Sub
On Error GoTo Abbruch:
For Each objWorksheet In ThisWorkbook.Worksheets
With objWorksheet
.Unprotect Password:=strPassword
.Protect Password:=strPassword, userInterfaceOnly:=False
.Unprotect Password:=strPassword
End With
Next objWorksheet
ThisWorkbook.Unprotect Password:=strPassword
Exit Sub
Abbruch:
MsgBox "Wrong Password", vbExclamation, "Message"
Application.ScreenUpdating = True
End Sub
Bitte um Hilfe - Danke!
Lg,
Chrisi
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Passwort in Inputbox als Sternchen
27.03.2017 08:32:38
Rainer
Hallo Chrisi,
wenn du das Passwort über eine TextBox (Textfeld) einträgst, dann kannst du die Eigenschaft "PasswordChar" vergeben.
Gruß,
Rainer
AW: Passwort in Inputbox als Sternchen
27.03.2017 08:53:02
cH_rI_sI
Hallo Rainer,
besten Dank für die rasche Antwort, aber ich verstehe leider nur Bahnhof ;-(
Ich möchte gerne, dass bei meiner Inputbox das eingegebene Passwort mit Sternchen angezeigt wird:
strPassword = InputBox("Enter password:", "Password")
Wie muss ich das genau machen? Danke schonmal für deine Geduld!
Lg,
Chrisi
Anzeige
AW: Passwort in Inputbox als Sternchen
27.03.2017 09:15:53
Rainer
Hallo Chrisi,
du erstellst eine UserForm anstelle der Inputbox, um das Passwort "zu holen".
In der Userform erstellst du dazu eine Textbox. Diese besitzt die Eigenschaft "PasswordChar", wo du das Sternchen * einträgst. Dann werden alle Eingaben in dieser Textbox durch ******* ersetzt.
Gruß,
Rainer
Anzeige
AW: Passwort in Inputbox als Sternchen
27.03.2017 09:42:08
cH_rI_sI
Hallo Rainer,
sorry, dass ich so blöd bin aber ich komme nicht weiter - ich habe eine Userform angelegt und darin eine Befehlsschaltfläche - nun steht da CommandButton1.
Wie bekomme ich nun diesen CommandButton1 in meine Arbeitsmappe und wie kann ich diesem die Eigenschaft "PasswordChar" als auch mein Makro "Unprotect" zuweisen?
Anzeige
AW: Passwort in Inputbox als Sternchen
27.03.2017 10:24:27
Rainer
Hallo Chrissi,
Nicht dem CommandButton...
Die Userform braucht eine Textbox. Dort die Eigenschaft "PasswordChar" zuweisen.
Außerdem braucht die Userform einen CommanButton zum schließen nach Passworteingabe.
Außerdem eine globale Variable erstellen, welche das Passwort enthält und sich aus dem Text der Textbox bedient.
In einen Modul schreibst du:

Public PW As String
Sub PW_Abfrage()
UserForm1.Show
MsgBox PW
End Sub
In den Code der Userform schreibst du:

Private Sub CommandButton1_Click()
PW = TextBox1.Value
Unload UserForm1
End Sub
Gruß,
Rainer
Anzeige
AW: Passwort in Inputbox als Sternchen
27.03.2017 10:42:06
cH_rI_sI
Danke Rainer - ich habe es in der Zwischenzeit mit dieser Hilfe gelöst:
CommandButton1:
Caption: OK
Default: True
CommandButton2:
Caption: Abbrechen
Cancel: True
TextBox1:
PasswordChar: *
Label1:
Cpation: Passwort: (nur zur Beschriftung der Textbox)
Dann ins Modul der Userform diesen Code:
______________________________________________________
Option Explicit
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub CommandButton2_Click()
TextBox1 = ""
Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then TextBox1 = ""
End Sub
Public Function GetPassword() As String
Me.Show
GetPassword = TextBox1
End Function
_______________________________________________

Anzeige
AW: Passwort in Inputbox als Sternchen
27.03.2017 11:37:27
Rainer
Viele Wege führen nach Rom...
Unprotect ohne InputBox oder Userform
27.03.2017 08:59:31
EtoPHG
Hallo Chrisi,
Wenn ein Blatt mit einem Passwort geschützt ist, dann genügt
.Unprotect
ohne weitere Parameter. Damit erscheint automatisch eine Passwort-Abfrage (ohne lesbare Eingabe).
Gruess Hansueli
AW: Unprotect ohne InputBox oder Userform
27.03.2017 09:05:29
cH_rI_sI
Nachdem ich aber bei ca. 25 Blättern den Blattschutz entfernen (alle natürlich das selbe Passwort) und nur einmal das Passwort eingeben möchte, brauche ich die Inputbox, damit ich nachher das eingegebene Passwort übergeben kann. Oder geht das auch anders? Anbei nochmal der ganze Code:
Sub Unprotect()
Dim objWorksheet As Worksheet
Dim strPassword As String
strPassword = InputBox("Enter password:", "Password")
Application.ScreenUpdating = False
If StrPtr(strPassword) = 0 Then Exit Sub
On Error GoTo Abbruch:
For Each objWorksheet In ThisWorkbook.Worksheets
With objWorksheet
.Unprotect Password:=strPassword
.Protect Password:=strPassword, userInterfaceOnly:=False
.Unprotect Password:=strPassword
End With
Next objWorksheet
ThisWorkbook.Unprotect Password:=strPassword
Exit Sub
Abbruch:
MsgBox "Wrong Password", vbExclamation, "Message"
Application.ScreenUpdating = True
End Sub
Danke!
Lg,
Chrisi
Anzeige
AW: Unprotect ohne InputBox oder Userform
27.03.2017 09:28:10
EtoPHG
Hallo Chrisi,
Deine Anfrage ist voller Widersprüche:
Wenn du zuerst das Passwort entfernen willst, muss es gezwungenermassen bekannt sein, denn es wurde beim Setzen ja schon eingegeben. Also kann es im Code irgendwo als String hinterlegt sein.
Eine InputBox lässt sich über das Windows-API zwar so manipulieren, dass nur * anstelle der Eingabe erfolgt (Recherchiere im internet!). Die einfachere Alternative ist eine Userform, mit einer TextBox, deren PasswordChar Eigenschaft auf * gesetzt ist (wie von Rainer vorgeschlagen).
Gruess Hansueli
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Passwort in Inputbox als Sternchen anzeigen


Schritt-für-Schritt-Anleitung

Um ein Passwort in einer Inputbox als Sternchen anzuzeigen, empfiehlt es sich, eine UserForm zu verwenden. Hier sind die Schritte, um dies zu erreichen:

  1. UserForm erstellen:

    • Öffne den VBA-Editor (ALT + F11).
    • Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)", gehe auf "Einfügen" und wähle "UserForm".
  2. TextBox hinzufügen:

    • Ziehe eine TextBox auf die UserForm.
    • Setze die Eigenschaft PasswordChar der TextBox auf *, um die Eingabe als Sternchen darzustellen.
  3. CommandButton hinzufügen:

    • Füge einen CommandButton hinzu, um die Eingabe zu bestätigen.
  4. Code für die UserForm:

    • Füge den folgenden Code in die UserForm ein:
      Private Sub CommandButton1_Click()
      PW = TextBox1.Value
      Unload Me
      End Sub
  5. Modul erstellen:

    • Erstelle ein neues Modul und füge den Code für die Passwortabfrage ein:
      Public PW As String
      Sub PW_Abfrage()
      UserForm1.Show
      End Sub
  6. Makro zum Entsperren:

    • In deinem bestehenden Makro für das Entsperren der Blätter, ersetze die InputBox mit dem Aufruf deines neuen Makros:
      Sub Unprotect()
      Dim objWorksheet As Worksheet
      PW_Abfrage ' UserForm wird angezeigt
      Application.ScreenUpdating = False
      If StrPtr(PW) = 0 Then Exit Sub
      On Error GoTo Abbruch:
      For Each objWorksheet In ThisWorkbook.Worksheets
         With objWorksheet
             .Unprotect Password:=PW
             .Protect Password:=PW, userInterfaceOnly:=False
             .Unprotect Password:=PW
         End With
      Next objWorksheet
      ThisWorkbook.Unprotect Password:=PW
      Exit Sub
      Abbruch:
      MsgBox "Wrong Password", vbExclamation, "Message"
      Application.ScreenUpdating = True
      End Sub

Häufige Fehler und Lösungen

  • Fehler: Das Passwort wird nicht als Sternchen angezeigt.

    • Lösung: Stelle sicher, dass die PasswordChar-Eigenschaft der TextBox auf * gesetzt ist.
  • Fehler: UserForm wird nicht angezeigt.

    • Lösung: Überprüfe, ob das Makro PW_Abfrage korrekt aufgerufen wird.
  • Fehler: Fehler bei der Entsperrung.

    • Lösung: Vergewissere dich, dass das eingegebene Passwort korrekt ist und dass die Blätter tatsächlich mit diesem Passwort geschützt sind.

Alternative Methoden

Falls du keine UserForm verwenden möchtest, gibt es auch andere Ansätze:

  • API-Anruf: Eine komplexe Möglichkeit ist die Verwendung der Windows-API, um eine InputBox anzupassen. Diese Methode erfordert jedoch tiefere Kenntnisse in der Programmierung und wird nicht empfohlen für Anfänger.
  • TextBox in einem Arbeitsblatt: Du kannst auch eine TextBox in einem Arbeitsblatt verwenden, um das Passwort einzugeben, jedoch werden die Zeichen nicht maskiert.

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du eine UserForm zur Passwortabfrage implementierst:

  1. UserForm-Konfiguration:

    • TextBox mit PasswordChar auf *.
    • Zwei CommandButtons: "OK" und "Abbrechen".
  2. Code für die UserForm:

    Private Sub CommandButton1_Click()
       PW = TextBox1.Value
       Unload Me
    End Sub
  3. Entsperr-Makro:

    Sub Unprotect()
       Dim objWorksheet As Worksheet
       PW_Abfrage
       ' Rest des Codes wie oben
    End Sub

Tipps für Profis

  • Überlege, ob du die Funktionalität der UserForm weiter anpassen möchtest, z.B. durch Hinzufügen von Validierung oder zusätzlichen Optionen.
  • Nutze die vbCrLf-Konstante in MessageBoxen, um mehrzeilige Nachrichten zu erstellen und die Benutzerfreundlichkeit zu verbessern.
  • Dokumentiere deinen Code gut, um auch anderen Benutzern das Verständnis zu erleichtern.

FAQ: Häufige Fragen

1. Frage
Wie kann ich das Passwort sicher speichern?
Du kannst das Passwort nicht direkt im Code speichern. Eine Möglichkeit ist, es in einer geschützten Zelle oder einer Datenbank zu speichern.

2. Frage
Kann ich die UserForm auch in vb.net erstellen?
Ja, die Konzepte sind ähnlich, du musst jedoch die spezifischen Syntax und Methoden für vb.net verwenden, insbesondere die InputBox-Ersatzmechanismen.

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