Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
672to676
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
672to676
672to676
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Passwort mit Sternchen und Userform

Passwort mit Sternchen und Userform
29.09.2005 10:13:48
sophie
Hi Leute,
Habe da ein riesen Problem. Habe eine Excel Mappe mit einer Passwort Abfrage eingerichtet. Nun möchte ich das das Passwort auf dem Bildschirm mit Sternchen erscheint. Weiß daß es mit einer Userform möglich ist, aber leider weiß ich nicht wie das geht.Hilfe!

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Passwort mit Sternchen und Userform
29.09.2005 10:40:51
Matthias
Hallo Sophie,
Eine Textbox hat die Eigenschaft PasswordChar, gib hier * ein.
Gruß Matthias
AW: Passwort mit Sternchen und Userform
29.09.2005 11:33:07
sophie
Ja das habe ich gemacht. aber es tut sich nichts. muß ich nicht ne benutzerform erstellen? wenn ja wie sieht denn so ein code aus?
AW: Passwort mit Sternchen und Userform
29.09.2005 14:25:40
sophie
Hi Matthias,
habe deinen Rat befolgt, leider erfolglos. ich schick dir mal meinen passwortabfragecode, den ich in der Inputbox habe.
Option Explicit
Dim InI As Integer ' Zählvariable für Register
Dim ByS As Boolean ' Variable für Speicherung

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'    ausblenden aller Register außer Tabelle1 mit
'    Sheets("....").Visible = xlVeryHidden aus
'    dies hat den Vorteil Sie können nur per VBA eingeblendet werden.
Dim Mldg As Byte    ' Variable für Schalter MsgBox
'    ActiveWorkbook.Unprotect ("Passwort")      ' falls Dateischutz
If ActiveWorkbook.Saved Then
'       Datei wurde nicht verändert
'       eine Tabelle muß min. eingeblendet sein
Sheets("Tabelle1").Visible = True
'       alle Tabellen ausblenden vom letzten bis zum ersten
'       außer "Tabelle1"
For InI = Sheets.Count To 1 Step -1
If Sheets(InI).Name <> "Tabelle1" Then Sheets(InI).Visible = xlVeryHidden
Next InI
ByS = True
ThisWorkbook.Close True
Else
If ByS = True Then Exit Sub
Mldg = MsgBox(" Sollen die Veränderungen gespeichert werden ?", _
vbYesNo + vbQuestion, "Speicher abfrage ?", "", 0)
If Mldg = 6 Then        ' es wurde "Ja" gedrückt
'           aktualisierung Bildschirm aus
Application.ScreenUpdating = False
'           eine Tabelle muß min. eingeblendet sein
Sheets("Tabelle1").Visible = True
'           alle Tabellen ausblenden vom letzten bis zum ersten
'           außer "Tabelle1"
For InI = Sheets.Count To 1 Step -1
If Sheets(InI).Name <> "Tabelle1" Then Sheets(InI).Visible = xlVeryHidden
Next InI
'           aktualisierung Bildschirm ein
Application.ScreenUpdating = True
'           Speichervariable auf True, da Ereignis Workbook_BeforeSave
'           augeführt wird
ByS = True
ThisWorkbook.Save
Else
ByS = True
ThisWorkbook.Close False
End If
End If
'    ActiveWorkbook.Protect ("Passwort")    ' Dateischutz wieder setzen
End Sub


Private Sub Workbook_Open()
'   ActiveWorkbook.Unprotect ("Passwort")
'   aktualisierung Bildschirm aus
Application.ScreenUpdating = False
'   alle Tabellen einblenden vom letzten bis zum ersten
For InI = Sheets.Count To 1 Step -1
Sheets(InI).Visible = True
Next InI
'   Tabelle mit Hinweis ausblenden
Sheets("Tabelle1").Visible = False
'   Schalter Veränderung der Datei zurückstellen
'   Damit das einblenden der Register nicht als Veränderung der Datei angesehen wird
ActiveWorkbook.Saved = True
'   aktualisierung Bildschirm ein
Application.ScreenUpdating = True
'    ActiveWorkbook.Protect ("Passwort")
End Sub

' Füge ein neues Register ein und schreibe groß drauf "Makro wurden nicht aktiviert"
' in

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'    blendest Du alle anderen Register aus
'    Das Ausblenden hat den Vorteil das die Register nur über VBA eingeblendet werden können
'    und nicht über Format, Blatt, Einblenden.
'    VBA Projekt schützen

Private Sub Workbook_Activate()
Dim s As String
Const passw1 = "zeynep"
Const passw2 = "rüdiger"
Const passw3 = "bock"
Const passw4 = "krepp"
Const passw5 = "kluth"
Worksheets("Gesamtübersicht").Visible = xlVeryHidden
Worksheets("Produktionsleistung").Visible = xlVeryHidden
Worksheets("Produktionskosten").Visible = xlVeryHidden
Worksheets("Verrechnungskosten").Visible = xlVeryHidden
Worksheets("sonstige Aufwände").Visible = xlVeryHidden
s = InputBox("Geben Sie das Paßwort ein!")
If s = passw1 Then
Worksheets("Gesamtübersicht").Visible = True
Worksheets("Produktionsleistung").Visible = True
Worksheets("Produktionskosten").Visible = True
Worksheets("Verrechnungskosten").Visible = True
Worksheets("sonstige Aufwände").Visible = True
Exit Sub
ElseIf s = passw2 Then
Worksheets("Gesamtübersicht").Visible = True
Worksheets("Produktionsleistung").Visible = True
Worksheets("Produktionskosten").Visible = True
Worksheets("Verrechnungskosten").Visible = True
Worksheets("sonstige Aufwände").Visible = True
Exit Sub
ElseIf s = passw3 Then
Worksheets("Produktionsleistung").Visible = True
Worksheets("Gesamtübersicht").Visible = xlVeryHidden
Worksheets("Produktionskosten").Visible = xlVeryHidden
Worksheets("Verrechnungskosten").Visible = xlVeryHidden
Worksheets("sonstige Aufwände").Visible = xlVeryHidden
Exit Sub
ElseIf s = passw4 Then
Worksheets("Produktionskosten").Visible = True
Worksheets("Gesamtübersicht").Visible = xlVeryHidden
Worksheets("Produktionsleistung").Visible = xlVeryHidden
Worksheets("Verrechnungskosten").Visible = xlVeryHidden
Worksheets("sonstige Aufwände").Visible = xlVeryHidden
Exit Sub
ElseIf s = passw5 Then
Worksheets("sonstige Aufwände").Visible = True
Worksheets("Gesamtübersicht").Visible = xlVeryHidden
Worksheets("Produktionsleistung").Visible = xlVeryHidden
Worksheets("Produktionskosten").Visible = xlVeryHidden
Worksheets("Verrechnungskosten").Visible = xlVeryHidden
Exit Sub
Else
MsgBox "Sie haben keine Zugriffsrechte. Und Tschüss!"
End If
End Sub

so das war er. diesen code für die userform habe ich im archiv gefunden. wenn ich den einbaue, passiert nichts:

LassModule: frmPasswort

Private Sub cmdAbbrechen_Click()
MsgBox " kein Zugang!"
Unload Me
End Sub


Private Sub cmdOK_Click()
If txtPasswort.Text = "zeynep" Then
MsgBox " Alles Klar!"
Unload Me
Else
MsgBox "War wohl nix!"
txtPasswort.Text = ""
txtPasswort.SetFocus
End If
End Sub


Private Sub TextBox1_Change()
End Sub


Private Sub UserForm_Initialize()
txtPasswort.SetFocus
End Sub

StandardModule: basMain
Sub CallForm()
frmPasswort.Show
End Sub

Anzeige
AW: Passwort mit Sternchen und Userform
29.09.2005 15:13:47
Matthias
Hallo Sophie,
erstelle ein Userform mit folgenden Steuerelementen und Eigenschaften:

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
_______________________________________________

Aufrufen kannst es dann mit folgendem Code:

s = UserForm1.GetPassword

s ist das eingegebene Kennwort.
Gruß Matthias
Anzeige
AW: Passwort mit Sternchen und Userform
30.09.2005 08:35:21
sophie
Hi,
aber wenn ich das eingebe, was du mir gesagt hast, dann ensteht ein Kompilierungsfehler: mehrdeutiger Name: CommandButtom2-Click
Caption: OK
Default: True
End Sub

Private Sub CommandButton2_Click()
Caption: Abbrechen
Cancel: True
End Sub


Private Sub Label1_Click()
Caption: Passwort:
End Sub


Private Sub TextBox1_Change()
PasswordChar: *
End Sub


Private Sub UserForm_Click()
Option Explicit

Private Sub CommandButton2_Click()
TextBox1 = ""
Unload Me
End Sub


Private Sub CommandButton1_Click()
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

_______________________________________________
End Function
Anzeige
AW: Passwort mit Sternchen und Userform
30.09.2005 08:40:23
Matthias
Hallo Sophie,
ich schrieb:

erstelle ein Userform mit folgenden Steuerelementen und Eigenschaften:
CommandButton1:
Caption: OK
Default: True
CommandButton2:
Caption: Abbrechen
Cancel: True
TextBox1:
PasswordChar: *
Label1:
Cpation: Passwort: (nur zur Beschriftung der Textbox)

Du musst die angegebenen Steuerelemente auf dem Userform erstellen und die angegebenen Eigenschaften setzen.
Gruß Matthias
AW: Passwort mit Sternchen und Userform
30.09.2005 08:46:24
sophie
habe ich, der fehler ist ja in der userform...
AW: Passwort mit Sternchen und Userform
30.09.2005 08:50:49
sophie
Und du hast ja meine Inputbox gesehen. soll ich den inhalt beibehalten neben der eingerichteten userform?
Anzeige
AW: Passwort mit Sternchen und Userform
30.09.2005 09:01:52
sophie
ok ok das hat geklappt. sorry.
wo muß ich denn das s = UserForm1.GetPassword einbauen? damit kann ich grad nichts anfangen, sorry daß ich nerve...
AW: Passwort mit Sternchen und Userform
30.09.2005 09:04:17
Matthias
Hallo Sophie,
in deinem Code steht:

s = InputBox("Geben Sie das Paßwort ein!")

Ersetze dies durch:

s = UserForm1.GetPassword


Grüße Matthias
AW: Passwort mit Sternchen und Userform
30.09.2005 09:35:33
sophie
ich kanns garnicht glauben. es funktioniert. aber trotz einrichtung des Labels steht bei mir auf dem Kästchen Userform statt passwort.
AW: Passwort mit Sternchen und Userform
30.09.2005 09:37:58
Matthias
Hallo Sophie,
"auf dem Kästchen"?
Den Titel des Userforms kannst du mit der Eigenschaft "Caption" des UF ändern.
Gruß Matthias
Anzeige
AW: Passwort mit Sternchen und Userform
30.09.2005 09:43:52
sophie
So jetzt ist es perfekt. du weißt garnicht, wie du mir geholfen hast. DANKE SCHÖN!!!!
und vorallem hattest du echt viel geduld mit mir...
AW: Passwort mit Sternchen und Userform
30.09.2005 09:45:18
Matthias
Hallo Sophie,
Danke für die Rückmeldung, gern geschehen!
Schönen Tag noch,
Matthias
AW: Passwort mit Sternchen und Userform
30.09.2005 09:53:28
sophie
Hey Matthias,
du bist echt klasse, du weißt garnich´t wie du mir geholfen hast. ich bin dir sowas von dankbar, das glaubst du nict.
Großes DANKE SCHÖN!!!!
AW: Passwort mit Sternchen und Userform
30.09.2005 11:06:08
sophie
oh jetzt fällt mir doch nochwas auf. Und zwar wenn man nach dem Passwort gefragt wird, muß man zuerst auf das textfeld klicken, bevor man das passwort eingeben kann.gehts auch ohne mit der maus auf das feld zu klicken?
Anzeige
AW: Passwort mit Sternchen und Userform
30.09.2005 11:10:13
Matthias
Hallo Sophie,
ergänze dazu im Userform-Modul:

Private Sub UserForm_Activate()
TextBox1.SetFocus
End Sub

Gruß Matthias
AW: Passwort mit Sternchen und Userform
30.09.2005 13:21:13
Matthias
Hallo Sophie,
ich habe noch eine kleine Erweiterung. Und zwar kann man mit folgendem Code eine Liste der möglichen Passwörter mitgeben. Wenn keines stimmt, wird erneut zur Eingabe aufgefordert, bis eines aus der Liste eingegeben oder auf Abbrechen geklickt wurde.
Ins Modul der Userform:

Option Explicit
Dim pw()
Dim pwList As Boolean
Private Sub CommandButton1_Click()
Dim i As Integer, found As Boolean
If pwList Then
For i = 0 To UBound(pw)
If TextBox1 = pw(i) Then found = True: Exit For
Next i
If Not found Then
MsgBox "falsches Kennwort!"
TextBox1 = ""
TextBox1.SetFocus
Exit Sub
End If
End If
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(Optional arr) As String
If IsMissing(arr) Then
pwList = False
Else
pwList = True
ReDim pw(UBound(arr))
pw = arr
End If
Me.Show
GetPassword = TextBox1
End Function

Zum Testen in ein Standardmodul:

Sub test()
Dim s As String
Const passw1 = "zeynep"
Const passw2 = "rüdiger"
Const passw3 = "bock"
Const passw4 = "krepp"
Const passw5 = "kluth"
s = UserForm1.GetPassword(Array(passw1, passw2, passw3, passw4, passw5))
MsgBox s
End Sub

Grüße,
Matthias
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige