Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hello. I have a very complicated (and poorly constructed) legacy
program/spreadsheet that I must now support. I have found a VBA code segment that is causing some problems. The actual code is excessively complicated, so I have recreated this simple example. Open a new workbook. On Sheet 1, place one text box and one command button. Sheet 2 should be completely blank. Sheet 3 can be deleted or left as is. Click into the textbox. The intent of the VBA is to allow you to use Tab, Return, or Down Arrow to get onto the command button. Once on the command button, Shift+Tab or Up Arrow will return you to the textbox. Tab or Down Arrow will keep you on the command button. Using Return, while on the command button, should execute the code associated with the Click Event. In Excel 2003, everything works as expected. In Excel 2002 or 2000, the code executes correctly if the command button is clicked. However if you attempt to use Return to execute the Click Event, Excel crashes. If you step thru the code, everything executes ok until the last End Sub. I need this to work in Excel 2002, so any ideas or work arounds will be greatly appreciated. I am attempting to cut/paste the code which is located on the Sheet1 object. Thanks for your help, Tom Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim bBackwards As Boolean Select Case KeyCode Case vbKeyTab, vbKeyReturn, vbKeyDown, vbKeyUp Application.ScreenUpdating = False bBackwards = CBool(Shift And 1) Or (KeyCode = vbKeyUp) If bBackwards Then TextBox1.Activate Else CommandButton1.Activate Application.ScreenUpdating = True End Select End Sub Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim bBackwards, bForwards As Boolean Select Case KeyCode Case vbKeyTab, vbKeyReturn, vbKeyDown, vbKeyUp Application.ScreenUpdating = False bBackwards = CBool(Shift And 1) Or (KeyCode = vbKeyUp) bForwards = (KeyCode = vbKeyTab) Or (KeyCode = vbKeyDown) If bBackwards Then TextBox1.Activate ElseIf bForwards Then CommandButton1.Activate Else Call CommandButton1_Click End If Application.ScreenUpdating = True End Select End Sub Private Sub CommandButton1_Click() Sheet2.Cells(1, 1).Value = "test" Sheet2.Activate End Sub |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
xls file works fine in Excel 2000 and 2007 but crashes on opening in 2003 | Excel Discussion (Misc queries) | |||
Excel 2000, 2003 crashes on opening | Excel Programming | |||
Excel 2003 crashes loading excel files created Excel 2000 | Excel Discussion (Misc queries) | |||
Can you use excel 2003 version with excel 2002 and 2000 on a netw. | Excel Discussion (Misc queries) | |||
VBA File in EXCEL 2000 Crashes in code that I have made no changes | Excel Programming |