Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default 3 dimensional array


Hi again all - having some problems with this! I have the folling loop
to put my values from 9 label boxes on a userform in an array;


Code:
--------------------

Static Counter As Long
Counter = Counter + 1
ReDim Preserve ary(1 To 3, 1 To Counter)

For i = 1 To 3

ary(1, i, Counter) = MachineNumber
ary(2, i, Counter) = Controls("lblDTCode" & i).Caption
ary(3, i, Counter) = Controls("lblDTDuration" & i).Caption

Next i

--------------------


which works fine - my array is filled! But how do I get all the values
out using another button on the same form? Been trying the following
with no joy;


Code:
--------------------


i = 1
j = 0
Do
For p = 1 To 4
ActiveCell.Offset(j, 6) = ary(2, p, i)
ActiveCell.Offset(j, 7) = ary(3, p, i)
Next p
i = i + 1
j = j + 1
Loop Until i = CountPopulatedGrid + 1

--------------------


Any help will be appreciated, might start looking for a new job now.
haha. cheers guys


--
gti_jobert
------------------------------------------------------------------------
gti_jobert's Profile: http://www.excelforum.com/member.php...o&userid=30634
View this thread: http://www.excelforum.com/showthread...hreadid=507657

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default 3 dimensional array

If you ditch the 3rd dimension, you can simply use

For i = 1 To 3

ary(1, i) = machinenumber
ary(2, i) = Controls("lblDTCode" & i).Caption
ary(3, i) = Controls("lblDTDuration" & i).Caption

Next i
ActiveCell.Resize(UBound(ary, 1), UBound(ary, 2)) = ary


--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"gti_jobert" wrote
in message ...

Hi again all - having some problems with this! I have the folling loop
to put my values from 9 label boxes on a userform in an array;


Code:
--------------------

Static Counter As Long
Counter = Counter + 1
ReDim Preserve ary(1 To 3, 1 To Counter)

For i = 1 To 3

ary(1, i, Counter) = MachineNumber
ary(2, i, Counter) = Controls("lblDTCode" & i).Caption
ary(3, i, Counter) = Controls("lblDTDuration" & i).Caption

Next i

--------------------


which works fine - my array is filled! But how do I get all the values
out using another button on the same form? Been trying the following
with no joy;


Code:
--------------------


i = 1
j = 0
Do
For p = 1 To 4
ActiveCell.Offset(j, 6) = ary(2, p, i)
ActiveCell.Offset(j, 7) = ary(3, p, i)
Next p
i = i + 1
j = j + 1
Loop Until i = CountPopulatedGrid + 1

--------------------


Any help will be appreciated, might start looking for a new job now.
haha. cheers guys


--
gti_jobert
------------------------------------------------------------------------
gti_jobert's Profile:

http://www.excelforum.com/member.php...o&userid=30634
View this thread: http://www.excelforum.com/showthread...hreadid=507657



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default 3 dimensional array

You contention that "which works fine" is not believeable. You redim your
array with two dimensions and then attempt to address it with 3 dimensions.
Perhaps you posted some earlier code that you have since changed.

In any event, if your array is declared as public, then you would just loop
through it in your other routine, same as you are doing in the code that
works. You can address the limits/bounds of the array with

for i = lbound(ary,1) to ubound(ary,1)
for j = lbound(ary,2) to ubound(ary,2)
' and possibly although unlikely
for k = lbound(ary,3) to ubound(ary,3)
msgbox "ary(" & i & ", " & j & ", " & k & )=" & ary(i,j,k)
next k
next j
next i

--
Regards,
Tom Ogilvy


"gti_jobert" wrote
in message ...

Hi again all - having some problems with this! I have the folling loop
to put my values from 9 label boxes on a userform in an array;


Code:
--------------------

Static Counter As Long
Counter = Counter + 1
ReDim Preserve ary(1 To 3, 1 To Counter)

For i = 1 To 3

ary(1, i, Counter) = MachineNumber
ary(2, i, Counter) = Controls("lblDTCode" & i).Caption
ary(3, i, Counter) = Controls("lblDTDuration" & i).Caption

Next i

--------------------


which works fine - my array is filled! But how do I get all the values
out using another button on the same form? Been trying the following
with no joy;


Code:
--------------------


i = 1
j = 0
Do
For p = 1 To 4
ActiveCell.Offset(j, 6) = ary(2, p, i)
ActiveCell.Offset(j, 7) = ary(3, p, i)
Next p
i = i + 1
j = j + 1
Loop Until i = CountPopulatedGrid + 1

--------------------


Any help will be appreciated, might start looking for a new job now.
haha. cheers guys


--
gti_jobert
------------------------------------------------------------------------
gti_jobert's Profile:

http://www.excelforum.com/member.php...o&userid=30634
View this thread: http://www.excelforum.com/showthread...hreadid=507657



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Mutli-dimensional Array to Single-Dimension Array Blue Aardvark Excel Programming 3 October 15th 05 09:22 AM
3 dimensional array Sandy[_6_] Excel Programming 2 September 16th 05 02:16 PM
Create One-Dimensional Array from Two-Dimensional Array Stratuser Excel Programming 1 February 23rd 05 08:46 PM
Do I need a two dimensional array for this? hotherps[_17_] Excel Programming 1 February 20th 04 04:46 PM
add to two dimensional array GUS Excel Programming 1 August 26th 03 12:12 AM


All times are GMT +1. The time now is 09:57 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"