Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi;
The user form, frmOptSelect, has a number of frames, each with a number of option controls. The algoritms for all combinations of options are not currently available, so I'm disabling certain options for now. I'm trying to make sure that an option is selected in each frame on the form before I click the btnOpen button. In: Private Sub btnOpen_Click () event procedure and right at the top, I inserted: ........ CheckOptions which is a regular macro: Sub CheckOptions() Dim myOption As Control Dim myFlag As Integer .................................................. .... ' check options in frame grpSeries For Each myOption In UserForms(1).grpSeries.Controls ......If myOption.Value = True Then myFlag = 1 Next myOption If myFlage < 1 Then MsgBox "Select B- or GEL-Series" .................................................. ..... ' repeat for all frames .................................................. ..... I got " Run-time error '9': Subscript out of range", and the above For Each statement is higlighted! Any suggestions ? Thank you |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
probably zero basedinstead of
UserForms(1). try me. "monir" wrote: Hi; The user form, frmOptSelect, has a number of frames, each with a number of option controls. The algoritms for all combinations of options are not currently available, so I'm disabling certain options for now. I'm trying to make sure that an option is selected in each frame on the form before I click the btnOpen button. In: Private Sub btnOpen_Click () event procedure and right at the top, I inserted: ....... CheckOptions which is a regular macro: Sub CheckOptions() Dim myOption As Control Dim myFlag As Integer .................................................. ... ' check options in frame grpSeries For Each myOption In UserForms(1).grpSeries.Controls .....If myOption.Value = True Then myFlag = 1 Next myOption If myFlage < 1 Then MsgBox "Select B- or GEL-Series" .................................................. .... ' repeat for all frames .................................................. .... I got " Run-time error '9': Subscript out of range", and the above For Each statement is higlighted! Any suggestions ? Thank you |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Patrick;
Replacing UserForms(1). by Me. produced: ........."Compile error: Invalid use of Me keyword" Another suggestion? Thank you. "Patrick Molloy" wrote: probably zero basedinstead of UserForms(1). try me. "monir" wrote: Hi; The user form, frmOptSelect, has a number of frames, each with a number of option controls. The algoritms for all combinations of options are not currently available, so I'm disabling certain options for now. I'm trying to make sure that an option is selected in each frame on the form before I click the btnOpen button. In: Private Sub btnOpen_Click () event procedure and right at the top, I inserted: ....... CheckOptions which is a regular macro: Sub CheckOptions() Dim myOption As Control Dim myFlag As Integer .................................................. ... ' check options in frame grpSeries For Each myOption In UserForms(1).grpSeries.Controls .....If myOption.Value = True Then myFlag = 1 Next myOption If myFlage < 1 Then MsgBox "Select B- or GEL-Series" .................................................. .... ' repeat for all frames .................................................. .... I got " Run-time error '9': Subscript out of range", and the above For Each statement is higlighted! Any suggestions ? Thank you |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
In the For Each statement:
' check options in frame grpSeries .......For Each myOption In UserForms(1).grpSeries.Controls if I replace UserForms(1) by UserForm("frmOptSelect") now it is "Run-time error '13': Type mismatch", and the For Each statement is highlighted. (That is different from the earlier: "Run-time error '9': Subscript out of range" when I used the user form index.) Does this reveal anything? Since I'm referring to the user form object in a standard macro, shouldn't the reference to the user form be specific either by index or by name ? Thanks again. "monir" wrote: Patrick; Replacing UserForms(1). by Me. produced: ........"Compile error: Invalid use of Me keyword" Another suggestion? Thank you. "Patrick Molloy" wrote: probably zero basedinstead of UserForms(1). try me. "monir" wrote: Hi; The user form, frmOptSelect, has a number of frames, each with a number of option controls. The algoritms for all combinations of options are not currently available, so I'm disabling certain options for now. I'm trying to make sure that an option is selected in each frame on the form before I click the btnOpen button. In: Private Sub btnOpen_Click () event procedure and right at the top, I inserted: ....... CheckOptions which is a regular macro: Sub CheckOptions() Dim myOption As Control Dim myFlag As Integer .................................................. ... ' check options in frame grpSeries For Each myOption In UserForms(1).grpSeries.Controls .....If myOption.Value = True Then myFlag = 1 Next myOption If myFlage < 1 Then MsgBox "Select B- or GEL-Series" .................................................. .... ' repeat for all frames .................................................. .... I got " Run-time error '9': Subscript out of range", and the above For Each statement is higlighted! Any suggestions ? Thank you |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I didn't realise that the code was in a module. I assumed that you'd used
the form's own code sheet. Why don't you? "monir" wrote in message ... In the For Each statement: ' check options in frame grpSeries ......For Each myOption In UserForms(1).grpSeries.Controls if I replace UserForms(1) by UserForm("frmOptSelect") now it is "Run-time error '13': Type mismatch", and the For Each statement is highlighted. (That is different from the earlier: "Run-time error '9': Subscript out of range" when I used the user form index.) Does this reveal anything? Since I'm referring to the user form object in a standard macro, shouldn't the reference to the user form be specific either by index or by name ? Thanks again. "monir" wrote: Patrick; Replacing UserForms(1). by Me. produced: ........"Compile error: Invalid use of Me keyword" Another suggestion? Thank you. "Patrick Molloy" wrote: probably zero basedinstead of UserForms(1). try me. "monir" wrote: Hi; The user form, frmOptSelect, has a number of frames, each with a number of option controls. The algoritms for all combinations of options are not currently available, so I'm disabling certain options for now. I'm trying to make sure that an option is selected in each frame on the form before I click the btnOpen button. In: Private Sub btnOpen_Click () event procedure and right at the top, I inserted: ....... CheckOptions which is a regular macro: Sub CheckOptions() Dim myOption As Control Dim myFlag As Integer .................................................. ... ' check options in frame grpSeries For Each myOption In UserForms(1).grpSeries.Controls .....If myOption.Value = True Then myFlag = 1 Next myOption If myFlage < 1 Then MsgBox "Select B- or GEL-Series" .................................................. .... ' repeat for all frames .................................................. .... I got " Run-time error '9': Subscript out of range", and the above For Each statement is higlighted! Any suggestions ? Thank you |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Partick;
There are 2 reasons (I thought) for having a separate macro code for the task: 1. it makes the form's code neater, specially if other frames are added later to the form and their options need to be similarly cheked; and 2. in the case of multiple user forms, only the standard module's code needs to be expanded Now, if you meant to place the regular macro in the form's code sheet, not just the macro's code, then here it is. I moved the macro Sub CheckOptions () to the form's code sheet, and replaced UserForms(1) reference by Me (and later by nothing). Clicking the btnOpen button, which has the call to the CheckOptions macro (as illustrated below), does not produce run-time errors, and does not display the MsgBox message!! Stepping into the macro suggests that the message should be displayed ! Maybe I should follow the MsgBox statement by SetFocous on the relevant option! or maybe not ! Is it the regular macro in the Class-Module Forms code sheet that is causing all these troubles ? Here is the latest attempt, with all macros in the form's code sheet: frmOptSelect Private Sub btnOpen_Click () ................................................ CheckOptions ............................................... End Sub Sub CheckOptions() Dim myOption As Control Dim myFlag As Integer .................................................. .... ' check options in frame grpSeries For Each myOption In Me.grpSeries.Controls ......If myOption.Value = True Then myFlag = 1 Next myOption If myFlage < 1 Then MsgBox "Select B- or GEL-Series" .................................................. ..... ' repeat for all frames .................................................. ..... Other suggestions? Thank you. "Patrick Molloy" wrote: I didn't realise that the code was in a module. I assumed that you'd used the form's own code sheet. Why don't you? "monir" wrote in message ... In the For Each statement: ' check options in frame grpSeries ......For Each myOption In UserForms(1).grpSeries.Controls if I replace UserForms(1) by UserForm("frmOptSelect") now it is "Run-time error '13': Type mismatch", and the For Each statement is highlighted. (That is different from the earlier: "Run-time error '9': Subscript out of range" when I used the user form index.) Does this reveal anything? Since I'm referring to the user form object in a standard macro, shouldn't the reference to the user form be specific either by index or by name ? Thanks again. "monir" wrote: Patrick; Replacing UserForms(1). by Me. produced: ........"Compile error: Invalid use of Me keyword" Another suggestion? Thank you. "Patrick Molloy" wrote: probably zero basedinstead of UserForms(1). try me. "monir" wrote: Hi; The user form, frmOptSelect, has a number of frames, each with a number of option controls. The algoritms for all combinations of options are not currently available, so I'm disabling certain options for now. I'm trying to make sure that an option is selected in each frame on the form before I click the btnOpen button. In: Private Sub btnOpen_Click () event procedure and right at the top, I inserted: ....... CheckOptions which is a regular macro: Sub CheckOptions() Dim myOption As Control Dim myFlag As Integer .................................................. ... ' check options in frame grpSeries For Each myOption In UserForms(1).grpSeries.Controls .....If myOption.Value = True Then myFlag = 1 Next myOption If myFlage < 1 Then MsgBox "Select B- or GEL-Series" .................................................. .... ' repeat for all frames .................................................. .... I got " Run-time error '9': Subscript out of range", and the above For Each statement is higlighted! Any suggestions ? Thank you |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
ProtectSheet Options are un-checking after macro | Excel Discussion (Misc queries) | |||
SumProduct - checking for multiple options in one column | Excel Discussion (Misc queries) | |||
Are Error-Checking rules (in Excel Options) workbook-specific? | Excel Discussion (Misc queries) | |||
Error Checking Options - 2000-2003 | Excel Discussion (Misc queries) | |||
spell checking options | Excel Worksheet Functions |