Taking control from Option Button into RefEdit in Excel 2010 behaving oddly

R

ruoxuan.zhu

Hi,

I have a form that have a set of Option Buttons (rdbOutRange, rdbNWB, and rdbNWS) and a RefEdit (redOutputRange).

When I select the Option Button (rdbOutRange), I want it put the cursor in the RefEdit (redOutputRange).

My current code does this. But if I select something else, and then reselect Option A, it doesn't work anymore.

It looks like that the code is stuck at the next line if I put a Breakpoint on the SetFocus line.

My code is the following:
Private Sub rdbOutRange_Change()

Application.EnableEvents = False
If Me.rdbOutRange.Value = True Then
Me.redOutputRange.Enabled = True
Me.redOutputRange.SetFocus
Else
Me.redOutputRange.Value = ""
Me.redOutputRange.Enabled = False
End If
Application.EnableEvents = True

End Sub

What I am doing wrong?

Thanks,
Mike
 
C

catebekensail

Hi,



I have a form that have a set of Option Buttons (rdbOutRange, rdbNWB, and rdbNWS) and a RefEdit (redOutputRange).



When I select the Option Button (rdbOutRange), I want it put the cursor in the RefEdit (redOutputRange).



My current code does this. But if I select something else, and then reselect Option A, it doesn't work anymore.



It looks like that the code is stuck at the next line if I put a Breakpoint on the SetFocus line.



My code is the following:

Private Sub rdbOutRange_Change()



Application.EnableEvents = False

If Me.rdbOutRange.Value = True Then

Me.redOutputRange.Enabled = True

Me.redOutputRange.SetFocus

Else

Me.redOutputRange.Value = ""

Me.redOutputRange.Enabled = False

End If

Application.EnableEvents = True



End Sub



What I am doing wrong?



Thanks,

Mike
this is a reach but .... could it be that the event is dead? Try something like

on error goto gracefull_exit

Application.EnableEvents = False
If Me.rdbOutRange.Value = True Then
Me.redOutputRange.Enabled = True
Me.redOutputRange.SetFocus
Else
Me.redOutputRange.Value = ""
Me.redOutputRange.Enabled = False
End If

gracefull_exit:

Application.EnableEvents = True
 
R

ruoxuan.zhu

Thanks for the suggestion, it doesn't seem to be helpping me. I've also stopped using Application.EnableEvents as that doesn't actually stop form events from triggering.

I think I should be looking to see how I can get the radio button to trigger again without first clicking on another member of the group before clicking back to the button.
 
G

GS

This works for me...

Private Sub opt1_Click()
With Me.RefEdit1
.Enabled = True: .SetFocus
End With
End Sub

Private Sub opt2_Click()
With Me.RefEdit1
.Enabled = True: .SetFocus
End With
End Sub

Private Sub opt3_Click()
With Me.RefEdit1
.Enabled = True: .SetFocus
End With
End Sub

Private Sub UserForm_Click()
Me.RefEdit1.Enabled = False
End Sub

Private Sub UserForm_Initialize()
Me.RefEdit1.Enabled = False
End Sub

...when clicking outside the RefEdit, then going back to choose another
option.

If setting state is needed then I recommend you use a separate routing
to manage that, and call that routine from the opt_Click event...

Private Sub opt1_Click()
With Me.RefEdit1
.Enabled = True: .SetFocus
End With
Call SetCtrlState(Ndx:=Me.opt1.Tag)
End Sub

Sub SetCtrlState(Ndx&)
Select Case Ndx
Case Is = 1: '//do this...
Case Is = 2: '//do that...
Case Is = 3: '//do some other thing...
End Select 'Case Ndx
End Sub

--
Garry

Free usenet access at http://www.eternal-september.org
Classic VB Users Regroup!
comp.lang.basic.visual.misc
microsoft.public.vb.general.discussion
 
G

GS

Oops! Forgot to convert type...
Private Sub opt1_Click()
With Me.RefEdit1
.Enabled = True: .SetFocus
End With

Call SetCtrlState(Ndx:=CLng(Me.opt1.Tag))

...since the Tag is text. Optionally, you could avoid the conversion as
follows:

Sub SetCtrlState(Ndx$)
Select Case Ndx
Case "1":
Case "2":
Case "3":
End Select 'Case Ndx
End Sub

--
Garry

Free usenet access at http://www.eternal-september.org
Classic VB Users Regroup!
comp.lang.basic.visual.misc
microsoft.public.vb.general.discussion
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top