Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

VBA-Problem

Betrifft: VBA-Problem von: Anja
Geschrieben am: 21.08.2004 17:38:56

Hallo,
hab vor einiger Zeit eine Beispielmappe im Archiv gefunden,
die sich über eine UserForm mit Passwortabfrage öffnen lässt.
Funktioniert auch bestens, bis ich festgestellt habe, das man
auch ohne Passwort einfach durch Bestätigung der OK-Taste
oder klicken von X, diese Mappe öffnen kann.
Das Problem mit „X“ konnte ich schon lösen, aber die Ok-Taste
krieg ich einfach nicht hin, zumal ich VBA-Neuling bin.
Kann mir bitte jemand helfen?
Gruß
Anja


XXXXXXXXXXXXXXXXXXXXXXXXX
UserForm
XXXXXXXXXXXXXXXXXXXXXXXXX

Private Sub CommandButton1_Click()
UName = TextBox1.Text
PWort = TextBox2.Text
Set XFind = Sheets("PW").Columns(1).Find(UName)
If Not XFind Is Nothing Then
    If Sheets("PW").Cells(XFind.Row, 2) = PWort Then
        Unload Me
        Exit Sub
    Else
        MsgBox "Falsches Passwort"
        ThisWorkbook.Close savechanges:=False
    End If
Else
    MsgBox "Falscher User-Name"
    ThisWorkbook.Close savechanges:=False
End If
Unload Me
End Sub


Private Sub CommandButton2_Click()
ThisWorkbook.Close savechanges:=False
Unload Me
End Sub


XXXXXXXXXXXXXXXXXXXXXXXXXXX
Modul
XXXXXXXXXXXXXXXXXXXXXXXXXXX

Option Explicit

Public wks As Worksheet
Public PWort, UName As String



Sub Auto_open()
Application.Visible = False
Application.VBE.MainWindow.Visible = False
Passwort.Show
Application.ScreenUpdating = False
For Each wks In ActiveWorkbook.Sheets
If wks.Name <> "PW" Then
wks.Visible = True
Else
wks.Visible = xlVeryHidden
End If
Next
Worksheets("Start").Visible = xlVeryHidden
Application.Visible = True
End Sub

Sub Auto_close()
Application.ScreenUpdating = False
Worksheets("Start").Visible = True
For Each wks In ActiveWorkbook.Sheets
If wks.Name <> "Start" Then
wks.Visible = xlVeryHidden
End If
Next
Application.Visible = True
ActiveWorkbook.Save
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
End Sub
  


Betrifft: AW: VBA-Problem von: HerbertH
Geschrieben am: 21.08.2004 21:42:17

probiere es so:



Private Sub CommandButton1_Click()
Dim uname As String, PWort As String
 Dim XFind As Variant

uname = TextBox1.Text
PWort = TextBox2.Text

Set XFind = Sheets("PW").Columns(1).Find(uname)

If Not XFind Is Nothing And uname <> "" Then
    If Sheets("PW").Cells(XFind.Row, 2) = PWort Then
        Unload Me
        
Exit Sub

    Else
        MsgBox "Falsches Passwort"
        ThisWorkbook.Close savechanges:=False
    End If
    
Else
    MsgBox "Falscher User-Name"
    ThisWorkbook.Close savechanges:=False
End If

Unload Me
End Sub

     gruß herbert