Refer to controls by group name.

S

stewart

I have a userfrom that functions as an employee evaluation. There are
several areas of evaluation that I have assigned option buttons to.
There are four option buttons to each criteria. When the user is done
evaluating I want to verify that each criteria has been evaluated.
What I have works but it is repetitive and seems like there should be
a more efficient way to achieve my desired results. Is there a way to
check if all optionbuttons in a group are false? Below is my code.
Any help would be appreciated.

sub verify()
If opt1.Value = False And opt2.Value = False And opt3.Value = False
And opt4.Value = False Then
GoTo 2
ElseIf opt5.Value = False And opt6.Value = False And
opt7.Value = False And opt8.Value = False Then
GoTo 2
ElseIf opt9.Value = False And opt10.Value = False And
opt11.Value = False And opt12.Value = False Then
GoTo 2
ElseIf opt13.Value = False And opt14.Value = False And
opt15.Value = False And opt16.Value = False Then
GoTo 2
ElseIf opt17.Value = False And opt18.Value = False And
opt19.Value = False And opt20.Value = False Then
GoTo 2
End If
exit sub
2: msgbox "Please verify that the evaluation is complete."
end sub
 
T

Tom Ogilvy

Dim op as Control
for each op in Userform1.Controls
if typeof op is Msforms.OptionButton then
if op.value then cnt = cnt + 1
end if
Next
if cnt <> 5 then
msgbox "Please verify that the evaluation is complete."
end if
 
S

stewart

is there a way to show which control launches the message box i tried
op.setfocus but it comes up with object not defined

Dim op as Control
for each op in Userform1.Controls
if typeof op is Msforms.OptionButton then
if op.value then cnt = cnt + 1
end if
Next
if cnt <> 5 then
op.setfocus
msgbox "Please verify that the evaluation is complete."
end if
 

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