Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I have a loop that worked just fine unitl I changed my userform and therefore
had to change the code. The problem with the loop is that I want it to go through every control in two different frames. I do not know how to write this. Thus the erronous line is: For Each ctl In Me.StartDatumRam1.Controls & in Me.StartDatumRam2.Controls The first part until the "&" is correct I just dont know how to write it for two frames. please help me out! Thanks very much! The complete loop Private Sub startDatumTextBoxSub() Dim i As Long Dim ctl As Control ReDim strStartDatumArray(0 To lngNumberOfCheckBoxes) For Each ctl In Me.StartDatumRam1.Controls & in Me.StartDatumRam2.Controls If TypeName(ctl) = "TextBox" Then strStartDatumArray(i) = ctl.Value i = i + 1 End If Next ctl End Sub |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Is there any reason you can't simply use two loops?
Dim ctl As Control For Each ctl In Me.StartDataRam1.Controls ' do something Next ctl For Each ctl In Me.StartDataRam2.Control ' do something Next ctl -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "Viktor Ygdorff" wrote in message ... I have a loop that worked just fine unitl I changed my userform and therefore had to change the code. The problem with the loop is that I want it to go through every control in two different frames. I do not know how to write this. Thus the erronous line is: For Each ctl In Me.StartDatumRam1.Controls & in Me.StartDatumRam2.Controls The first part until the "&" is correct I just dont know how to write it for two frames. please help me out! Thanks very much! The complete loop Private Sub startDatumTextBoxSub() Dim i As Long Dim ctl As Control ReDim strStartDatumArray(0 To lngNumberOfCheckBoxes) For Each ctl In Me.StartDatumRam1.Controls & in Me.StartDatumRam2.Controls If TypeName(ctl) = "TextBox" Then strStartDatumArray(i) = ctl.Value i = i + 1 End If Next ctl End Sub |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I think you'll have to use two separate loops
ReDim strStartDatumArray(0 To lngNumberOfCheckBoxes) For Each ctl In Me.StartDatumRam1.Controls If TypeName(ctl) = "TextBox" Then strStartDatumArray(i) = ctl.Value i = i + 1 End If Next ctl For Each ctl In Me.StartDatumRam2.Controls If TypeName(ctl) = "TextBox" Then strStartDatumArray(i) = ctl.Value i = i + 1 End If Next ctl "Viktor Ygdorff" wrote: I have a loop that worked just fine unitl I changed my userform and therefore had to change the code. The problem with the loop is that I want it to go through every control in two different frames. I do not know how to write this. Thus the erronous line is: For Each ctl In Me.StartDatumRam1.Controls & in Me.StartDatumRam2.Controls The first part until the "&" is correct I just dont know how to write it for two frames. please help me out! Thanks very much! The complete loop Private Sub startDatumTextBoxSub() Dim i As Long Dim ctl As Control ReDim strStartDatumArray(0 To lngNumberOfCheckBoxes) For Each ctl In Me.StartDatumRam1.Controls & in Me.StartDatumRam2.Controls If TypeName(ctl) = "TextBox" Then strStartDatumArray(i) = ctl.Value i = i + 1 End If Next ctl End Sub |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
thanks for quick answer. yes i know i can use two loops but i have quite a
few loops and it doubles the code length. but you are right. plus it bugs me that i cannot figure it out. In short I can use two loops but it is far from desirable. thanks. Do you (or anyone else) know how to write the code so that it only requires one loop? I would very much appreciate any help! "Chip Pearson" skrev: Is there any reason you can't simply use two loops? Dim ctl As Control For Each ctl In Me.StartDataRam1.Controls ' do something Next ctl For Each ctl In Me.StartDataRam2.Control ' do something Next ctl -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "Viktor Ygdorff" wrote in message ... I have a loop that worked just fine unitl I changed my userform and therefore had to change the code. The problem with the loop is that I want it to go through every control in two different frames. I do not know how to write this. Thus the erronous line is: For Each ctl In Me.StartDatumRam1.Controls & in Me.StartDatumRam2.Controls The first part until the "&" is correct I just dont know how to write it for two frames. please help me out! Thanks very much! The complete loop Private Sub startDatumTextBoxSub() Dim i As Long Dim ctl As Control ReDim strStartDatumArray(0 To lngNumberOfCheckBoxes) For Each ctl In Me.StartDatumRam1.Controls & in Me.StartDatumRam2.Controls If TypeName(ctl) = "TextBox" Then strStartDatumArray(i) = ctl.Value i = i + 1 End If Next ctl End Sub |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
is it really so? I mean to mean it seems like there would be no problem with
one loop altough I am no expert. "Charlie" skrev: I think you'll have to use two separate loops ReDim strStartDatumArray(0 To lngNumberOfCheckBoxes) For Each ctl In Me.StartDatumRam1.Controls If TypeName(ctl) = "TextBox" Then strStartDatumArray(i) = ctl.Value i = i + 1 End If Next ctl For Each ctl In Me.StartDatumRam2.Controls If TypeName(ctl) = "TextBox" Then strStartDatumArray(i) = ctl.Value i = i + 1 End If Next ctl "Viktor Ygdorff" wrote: I have a loop that worked just fine unitl I changed my userform and therefore had to change the code. The problem with the loop is that I want it to go through every control in two different frames. I do not know how to write this. Thus the erronous line is: For Each ctl In Me.StartDatumRam1.Controls & in Me.StartDatumRam2.Controls The first part until the "&" is correct I just dont know how to write it for two frames. please help me out! Thanks very much! The complete loop Private Sub startDatumTextBoxSub() Dim i As Long Dim ctl As Control ReDim strStartDatumArray(0 To lngNumberOfCheckBoxes) For Each ctl In Me.StartDatumRam1.Controls & in Me.StartDatumRam2.Controls If TypeName(ctl) = "TextBox" Then strStartDatumArray(i) = ctl.Value i = i + 1 End If Next ctl End Sub |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Maybe you could use an array to store your frames, then loop through the array.
Something similar to Sub test() Dim varFrames As Variant Dim cntl As Control Dim t As Long varFrames = Array(Me.StartDatumRam1, _ Me.StartDatumRam2) For t = LBound(varFrames) To UBound(varFrames) For Each cntl In varFrames(t).Controls MsgBox cntl.Name Next cntl Next t End Sub "Viktor Ygdorff" wrote: thanks for quick answer. yes i know i can use two loops but i have quite a few loops and it doubles the code length. but you are right. plus it bugs me that i cannot figure it out. In short I can use two loops but it is far from desirable. thanks. Do you (or anyone else) know how to write the code so that it only requires one loop? I would very much appreciate any help! "Chip Pearson" skrev: Is there any reason you can't simply use two loops? Dim ctl As Control For Each ctl In Me.StartDataRam1.Controls ' do something Next ctl For Each ctl In Me.StartDataRam2.Control ' do something Next ctl -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "Viktor Ygdorff" wrote in message ... I have a loop that worked just fine unitl I changed my userform and therefore had to change the code. The problem with the loop is that I want it to go through every control in two different frames. I do not know how to write this. Thus the erronous line is: For Each ctl In Me.StartDatumRam1.Controls & in Me.StartDatumRam2.Controls The first part until the "&" is correct I just dont know how to write it for two frames. please help me out! Thanks very much! The complete loop Private Sub startDatumTextBoxSub() Dim i As Long Dim ctl As Control ReDim strStartDatumArray(0 To lngNumberOfCheckBoxes) For Each ctl In Me.StartDatumRam1.Controls & in Me.StartDatumRam2.Controls If TypeName(ctl) = "TextBox" Then strStartDatumArray(i) = ctl.Value i = i + 1 End If Next ctl End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Looping | Excel Discussion (Misc queries) | |||
Looping | Excel Programming | |||
Help with looping | Excel Programming | |||
Grab Parents? | Excel Programming | |||
Looping | Excel Programming |