View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Mike H Mike H is offline
external usenet poster
 
Posts: 11,501
Default UserForm MsgBox problems

Hi,

This is a bit more awkward then it seem. You never give the user a chance to
enter a second password so it evaluates the same incorrect one 3 times. Nor
can you use a counter to count the attempts because it resets every time you
click the button. this rather messy way works. I use a1 of sheet 1 to keep
the count but in practice use an out of the way cell

Private Sub cmdOk_Click()
Select Case Me.Txtpassword.Value
Case "Sheet2"
ActiveWorkbook.Sheets("Sheet2").Visible = True
Unload Me
Case "Sheet3"
ActiveWorkbook.Sheets("Sheet3").Visible = True
Unload Me
Case Else
Answer = MsgBox("Password incorrect", vbCritical)
Sheets("Sheet1").[A1] = Sheets("Sheet1").[A1] + 1
End Select
If Sheets("Sheet1").[A1] = 3 Then
Answer = MsgBox("No more tries", vbCritical)
Sheets("Sheet1").[A1] = ""
ActiveWorkbook.Sheets("Sheet1").Activate
Unload Me
End If
End Sub


Mike



"jeq214" wrote:

I have a userform that requests a password and opens up a specific sheet
depending on the password. My problem is when I enter in an incorrect
password, a MsgBox appears, but it won't go away when I hit Ok. It'll go
through the count and exit the userform. Here's my code:

Private Sub cmdOk_Click()

Dim lCount As Long

'Allow 3 attempts at password
For lCount = 1 To 3
If Me.txtPassword.Value = vbNullString Then 'Cancelled
Unload Me
Exit Sub
End If
Select Case Me.txtPassword.Value
Case "Sheet2"
ActiveWorkbook.Sheets("Sheet2").Visible = True
Unload Me
Exit For
Case "Sheet3"
ActiveWorkbook.Sheets("Sheet3").Visible = True
Unload Me
Exit For
Case Else
Answer = MsgBox("Password incorrect", vbCritical)
End Select
Next lCount

If lCount = 4 Then 'They use up their 3 attempts
ActiveWorkbook.Sheets("Sheet1").Activate
Unload Me
Exit Sub
End If
End Sub