ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   For Each...Loop using Pages in a Multipage Control (https://www.excelbanter.com/excel-programming/413412-each-loop-using-pages-multipage-control.html)

RyanH

For Each...Loop using Pages in a Multipage Control
 
I am scattered today. Yesterday this code was working fine and today it is
not. I am getting a Type MisMatch Error indicated below, why?

Private Sub cboIllumination_Change()

Dim pg As Page

'disables all three pages
For Each pg In mpgIllumination.Pages
pg.Enabled = False
Next pg

End Sub

--
Cheers,
Ryan

Susan

For Each...Loop using Pages in a Multipage Control
 
try

dim page as control

:)
susan


On Jul 1, 2:52*pm, RyanH wrote:
I am scattered today. *Yesterday this code was working fine and today it is
not. *I am getting a Type MisMatch Error indicated below, why?

Private Sub cboIllumination_Change()

Dim pg As Page

* * 'disables all three pages
* * * * For Each pg In mpgIllumination.Pages
* * * * * * pg.Enabled = False
* * * * Next pg

End Sub

--
Cheers,
Ryan



Susan

For Each...Loop using Pages in a Multipage Control
 
of course i meant

dim pg as control

susan


On Jul 1, 2:52*pm, RyanH wrote:
I am scattered today. *Yesterday this code was working fine and today it is
not. *I am getting a Type MisMatch Error indicated below, why?

Private Sub cboIllumination_Change()

Dim pg As Page

* * 'disables all three pages
* * * * For Each pg In mpgIllumination.Pages
* * * * * * pg.Enabled = False
* * * * Next pg

End Sub

--
Cheers,
Ryan



RyanH

For Each...Loop using Pages in a Multipage Control
 
That seems to work! Why would my code not work? Defining pg as a Page
should work I would think.
--
Cheers,
Ryan


"Susan" wrote:

try

dim page as control

:)
susan


On Jul 1, 2:52 pm, RyanH wrote:
I am scattered today. Yesterday this code was working fine and today it is
not. I am getting a Type MisMatch Error indicated below, why?

Private Sub cboIllumination_Change()

Dim pg As Page

'disables all three pages
For Each pg In mpgIllumination.Pages
pg.Enabled = False
Next pg

End Sub

--
Cheers,
Ryan




RyanH

For Each...Loop using Pages in a Multipage Control
 
Ooops! No can do. I just realized that Dim pg as Control disables all the
controls in the page. I guess I will have to do this below. I figured I'd
just use the For Each Loop

'disables all three pages
For i = 0 To 2
mpgIllumination.Pages(i).Enabled = False
Next i
--
Cheers,
Ryan


"Susan" wrote:

try

dim page as control

:)
susan


On Jul 1, 2:52 pm, RyanH wrote:
I am scattered today. Yesterday this code was working fine and today it is
not. I am getting a Type MisMatch Error indicated below, why?

Private Sub cboIllumination_Change()

Dim pg As Page

'disables all three pages
For Each pg In mpgIllumination.Pages
pg.Enabled = False
Next pg

End Sub

--
Cheers,
Ryan




Susan

For Each...Loop using Pages in a Multipage Control
 
i don't think there is a type as "page". anything on a userform is
dimmed as a control. then you can specify what type of control you're
looking for.

like this:

dim oControl as Control

if typeof oControl is MSForms.multipage then..........
if typeof oControl is MSForms.textbox then.........

:)
susan


On Jul 1, 3:16*pm, RyanH wrote:
That seems to work! *Why would my code not work? *Defining pg as a Page
should work I would think.
--
Cheers,
Ryan



"Susan" wrote:
try


dim page as control


:)
susan


On Jul 1, 2:52 pm, RyanH wrote:
I am scattered today. *Yesterday this code was working fine and today it is
not. *I am getting a Type MisMatch Error indicated below, why?


Private Sub cboIllumination_Change()


Dim pg As Page


* * 'disables all three pages
* * * * For Each pg In mpgIllumination.Pages
* * * * * * pg.Enabled = False
* * * * Next pg


End Sub


--
Cheers,
Ryan- Hide quoted text -


- Show quoted text -



Susan

For Each...Loop using Pages in a Multipage Control
 
yes, then you'd have to specify what pg is, i.e., what type of
control. well, wait a minute, what difference does it make if it
disables all the controls on the page if the page itself is disabled?
if the whole page is disabled you won't be able to use anything on the
page anyway.

i guess your way is better for you if it does what you want it to!
:)
susan


On Jul 1, 3:28*pm, RyanH wrote:
Ooops! *No can do. *I just realized that Dim pg as Control disables all the
controls in the page. *I guess I will have to do this below. *I figured I'd
just use the For Each Loop

* * 'disables all three pages
* * * * For i = 0 To 2
* * * * * * mpgIllumination.Pages(i).Enabled = False
* * * * Next i
--
Cheers,
Ryan



"Susan" wrote:
try


dim page as control


:)
susan


On Jul 1, 2:52 pm, RyanH wrote:
I am scattered today. *Yesterday this code was working fine and today it is
not. *I am getting a Type MisMatch Error indicated below, why?


Private Sub cboIllumination_Change()


Dim pg As Page


* * 'disables all three pages
* * * * For Each pg In mpgIllumination.Pages
* * * * * * pg.Enabled = False
* * * * Next pg


End Sub


--
Cheers,
Ryan- Hide quoted text -


- Show quoted text -



Dave Peterson

For Each...Loop using Pages in a Multipage Control
 
Your code worked ok for me.

What line caused the error?

(I don't have a guess, but maybe someone else will.)

RyanH wrote:

I am scattered today. Yesterday this code was working fine and today it is
not. I am getting a Type MisMatch Error indicated below, why?

Private Sub cboIllumination_Change()

Dim pg As Page

'disables all three pages
For Each pg In mpgIllumination.Pages
pg.Enabled = False
Next pg

End Sub

--
Cheers,
Ryan


--

Dave Peterson

RyanH

For Each...Loop using Pages in a Multipage Control
 
For some reason this code was working yesterday. You even helped me with a
portion of it. But today it changed its mind and decided not to work so I
switched to this:

'disables all three pages
For i = 0 To 2
mpgIllumination.Pages(i).Enabled = False
Next i

Thanks for the help
--
Cheers,
Ryan


"Dave Peterson" wrote:

Your code worked ok for me.

What line caused the error?

(I don't have a guess, but maybe someone else will.)

RyanH wrote:

I am scattered today. Yesterday this code was working fine and today it is
not. I am getting a Type MisMatch Error indicated below, why?

Private Sub cboIllumination_Change()

Dim pg As Page

'disables all three pages
For Each pg In mpgIllumination.Pages
pg.Enabled = False
Next pg

End Sub

--
Cheers,
Ryan


--

Dave Peterson


Dave Peterson

For Each...Loop using Pages in a Multipage Control
 
I think you have a problem somewhere that you're masking. Your other code is ok
as far as I can see.

And if you add pages to that multipage control, you may not want to go back to
change the "from 0 to 2" lines. Easily fixed, yes. But it's easily missed,
too.

I'd use something like this to disable all the pages--no matter the count.

Dim i As Long
'disables all pages
With Me.mpgIllumination
For i = 0 To .Count - 1
.Pages(i).Enabled = False
Next i
End With

Much closer to what your "for each" code tried to do.

RyanH wrote:

For some reason this code was working yesterday. You even helped me with a
portion of it. But today it changed its mind and decided not to work so I
switched to this:

'disables all three pages
For i = 0 To 2
mpgIllumination.Pages(i).Enabled = False
Next i

Thanks for the help
--
Cheers,
Ryan

"Dave Peterson" wrote:

Your code worked ok for me.

What line caused the error?

(I don't have a guess, but maybe someone else will.)

RyanH wrote:

I am scattered today. Yesterday this code was working fine and today it is
not. I am getting a Type MisMatch Error indicated below, why?

Private Sub cboIllumination_Change()

Dim pg As Page

'disables all three pages
For Each pg In mpgIllumination.Pages
pg.Enabled = False
Next pg

End Sub

--
Cheers,
Ryan


--

Dave Peterson


--

Dave Peterson

RyanH

For Each...Loop using Pages in a Multipage Control
 
Absolutely Dave! Thanks for the tip!
--
Cheers,
Ryan


"Dave Peterson" wrote:

I think you have a problem somewhere that you're masking. Your other code is ok
as far as I can see.

And if you add pages to that multipage control, you may not want to go back to
change the "from 0 to 2" lines. Easily fixed, yes. But it's easily missed,
too.

I'd use something like this to disable all the pages--no matter the count.

Dim i As Long
'disables all pages
With Me.mpgIllumination
For i = 0 To .Count - 1
.Pages(i).Enabled = False
Next i
End With

Much closer to what your "for each" code tried to do.

RyanH wrote:

For some reason this code was working yesterday. You even helped me with a
portion of it. But today it changed its mind and decided not to work so I
switched to this:

'disables all three pages
For i = 0 To 2
mpgIllumination.Pages(i).Enabled = False
Next i

Thanks for the help
--
Cheers,
Ryan

"Dave Peterson" wrote:

Your code worked ok for me.

What line caused the error?

(I don't have a guess, but maybe someone else will.)

RyanH wrote:

I am scattered today. Yesterday this code was working fine and today it is
not. I am getting a Type MisMatch Error indicated below, why?

Private Sub cboIllumination_Change()

Dim pg As Page

'disables all three pages
For Each pg In mpgIllumination.Pages
pg.Enabled = False
Next pg

End Sub

--
Cheers,
Ryan

--

Dave Peterson


--

Dave Peterson



All times are GMT +1. The time now is 04:22 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com