Discussion:
Verdeckte Passworteingabe beim Blattschutz
(zu alt für eine Antwort)
Klaus
2006-01-29 00:14:00 UTC
Permalink
Hallo,



ich benutze folgendes Makro zum schützen mehrerer Blätter. Wie ist es
möglich , dass während der Eingabe das Passwort in der Inputbox nicht
angezeigt wird; sondern stattdessen "*" oder "x" zu sehen sind?



Public Sub Blattschutz_Ein()
Dim x
Dim passw1, passw2, Password As String
passw1 = InputBox("Bitte Passwort eingeben! ", "Blatt schützen")
passw2 = InputBox("Bitte Passwort wiederholen! ", "Blatt schützen")
If passw1 <> passw2 Then GoTo Fehler
For x = 2 To 13 Step 1
Sheets(x).Activate
ActiveSheet.Protect Password:=passw1
Next

MsgBox "Blattschutz ist eingeschaltet!"
Exit Sub
Fehler:
MsgBox "Passwort falsch!"
End Sub



Über eine Antwort würde ich mich freuen.

MfG

Klaus
Herbert Taferner
2006-01-29 06:47:00 UTC
Permalink
Hallo Klaus,

das geht bei Inputbox nicht,
da mußt du dir eine Userform bauen und
dafür eine Textbox verwenden dort kannst du dann
z. B.
TextBox1.PasswordChar = "*"

verwenden

mfg Herbert
Melanie Breden
2006-01-29 07:12:09 UTC
Permalink
Hallo Klaus,
Post by Klaus
ich benutze folgendes Makro zum schützen mehrerer Blätter. Wie ist es
möglich , dass während der Eingabe das Passwort in der Inputbox nicht
angezeigt wird; sondern stattdessen "*" oder "x" zu sehen sind?
das ist mit einer InputBox nicht möglich.

Erstelle eine UserForm mit zwei TextBoxen und weise den TextBoxen im
Eigenschaftenfeld neben der 'PasswordChar'-Eigenschaft das gewünschte Zeichen zu,
z.B. "*" (ohne Anführungszeichen).

Ziehe noch eine Schaltfläche auf der UserForm auf und hinterlege folgenden Code:

Private Sub CommandButton1_Click()
Const strPasswort As String = "Klaus"
Dim x As Long

Select Case True
Case TextBox1.Text = ""
MsgBox "Geben Sie ein Passwort ein"
TextBox1.SetFocus
Case TextBox2.Text = ""
MsgBox "Geben Sie ein Passwort ein"
TextBox2.SetFocus
Case TextBox1.Text <> TextBox2.Text
MsgBox "Die eingegebenen Passwörter sind nicht identisch!"
TextBox2.Text = ""
TextBox1.Text = ""
TextBox1.SetFocus
Case TextBox1.Text <> strPasswort
MsgBox "Das Passwort ist Falsch!"
Unload Me
Case Else
For x = 2 To 13
Sheets(x).Protect Password:=TextBox1.Text
Next x
MsgBox "Blattschutz ist eingeschaltet!"
Unload Me
End Select
End Sub

Durch die Select Case-Anweisung umgehst du auch locker deine Sprungmarken.

Den Aufruf der UserForm erreichst du über folgende Prozedur, die z.B. einer
Schaltfläche auf dem Tabellenblatt zugewiesen wird:

Public Sub DialogBlattschutz()
UserForm1.Show
End Sub


Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
Microsoft Excel - Die ExpertenTipps http://tinyurl.com/cmned
Das Excel-VBA Codebook http://excel.codebooks.de
Excel-Auftragsprogrammierung
Loading...