View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
NoodNutt[_2_] NoodNutt[_2_] is offline
external usenet poster
 
Posts: 39
Default UserForm triggers File Corruption

Hi Team

The file works perfectly. If I initialize the form internally, it works as expected, but! If I initialize it via:

[ThisWorkbook]
Private Sub Workbook_Open()

A Popup displays citing "Excel has stopped working" and reboots whereby it tries to repair the file, ultimately rendering it useless.

I have tried several times without success. Any assistance is appreciated.
TIA
Mark.

.................................................. .................................................. .........................

I have a UserForm "frmLogin". It is very basic with the following:

1 x Combo = "cmb_uName"
RowSource = uTable
ControlSource = Admin!B5

1 x TextBox = "txf_uPass"
ControlSource = Admin!B6

1 x cmdBtn = "cmd_OK"

There is no Initialize code, only the following:

Private Sub cmb_uName_Change()
Me.txf_uPass.SetFocus

End Sub
Private Sub cmdBtn_OK_Click()
CheckUser
End Sub

CheckUser has the following:

Sub CheckUser()

Dim sAdmin As Worksheet: Set sAdmin = ThisWorkbook.Sheets("Admin")
Dim obj As OLEObject
Dim uRow, sCol As Long
Dim sName, dSht As String

With sAdmin
.Calculate
If .Range("B8").Value = Empty Then
MsgBox "Only Registered Users are listed, Please contact [Alan Gotts] for Registration."
Exit Sub
End If
If .Range("B7").Value < True Then
MsgBox "Incorrect Password entered! Please try again."
Exit Sub
End If

Unload frmLogin

uRow = .Range("B8").Value
dSht = "Dashboard"

For sCol = 8 To 20
sName = .Cells(2, sCol).Value
If .Cells(uRow, sCol).Value = "Ð" Then
With Sheets(sName)
.Unprotect "TooBadSoSad"
.Visible = xlSheetVisible
End With
With Worksheets(dSht)
For Each obj In .OLEObjects
Select Case obj.Name
Case "cmdBtn_Import"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_Goto_Register"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_goto_Status"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_Goto_Bulk"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_Goto_PAG"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_Goto_NSW"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_Goto_QLD"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_Goto_SA"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_Goto_VIC"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_Goto_BKPI"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_Goto_PKPI"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_View_BKPI"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_View_PKPI"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_Print_BKPI"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_Print_PKPI"
.OLEObjects(obj.Name).Enabled = True
End Select
Next
End With
End If
If .Cells(uRow, sCol).Value = "Ï" Then
With Sheets(sName)
.Protect "TooBadSoSad"
.Visible = xlSheetVisible
End With
With Worksheets(dSht)
For Each obj In .OLEObjects
Select Case obj.Name
Case "cmdBtn_Import"
.OLEObjects(obj.Name).Enabled = False
Case "cmdBtn_Goto_Register"
.OLEObjects(obj.Name).Enabled = False
Case "cmdBtn_goto_Status"
.OLEObjects(obj.Name).Enabled = False
Case "cmdBtn_Goto_Bulk"
.OLEObjects(obj.Name).Enabled = False
Case "cmdBtn_Goto_PAG"
.OLEObjects(obj.Name).Enabled = False
Case "cmdBtn_Goto_NSW"
.OLEObjects(obj.Name).Enabled = False
Case "cmdBtn_Goto_QLD"
.OLEObjects(obj.Name).Enabled = False
Case "cmdBtn_Goto_SA"
.OLEObjects(obj.Name).Enabled = False
Case "cmdBtn_Goto_VIC"
.OLEObjects(obj.Name).Enabled = False
Case "cmdBtn_Goto_BKPI"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_Goto_PKPI"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_View_BKPI"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_View_PKPI"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_Print_BKPI"
.OLEObjects(obj.Name).Enabled = True
Case "cmdBtn_Print_PKPI"
.OLEObjects(obj.Name).Enabled = True
End Select
Next
End With
End If
If .Cells(uRow, sCol).Value = "x" Then
With Sheets(sName)
.Visible = xlSheetVeryHidden
End With
End If
Next sCol
End With

End Sub