#1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35
Default For Loop

Hi,

I am trying to write a code such that a parameter j has to iterate
continuously but the parameter k=2 has to restart everytime j =41 or
multiples of it. Here is an example

j k
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
15 16
16 17
17 18
18 19
19 20
20 21
21 2
22 3
23 4
24 5
25 6
26 7
27 8
28 9
29 10
30 11
31 12
32 13
33 14
34 15
35 16
36 17
37 18
38 19
39 20
40 21
41 2
42 3
43 4
44 5
45 6
46 7
47 8
48 9
49 10
50 11
51 12
52 13
53 14
54 15
55 16
56 17
57 18
58 19
59 20
60 21
61 2
62 3
63 4
64 5
65 6
66 7
67 8
68 9
69 10
70 11
71 12
72 13
73 14
74 15
75 16
76 17
77 18
78 19
79 20
80 21
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35
Default For Loop

Hi,

In my earlier post, i meant j = 21 and NOT multiples of it. k should
restart everytime j =21, 41, 61 and so on. Also this is the code which
I tried and is not working:

For j = 1 to 81
  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35
Default For Loop

i=1
j=1

For j = 1 to 81

if j <=20 Then
k = j+1
Else
k = j*mod(21)+2
End if
j=j+1
i=i+1
Cells(i, 3) = k
Next
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,101
Default For Loop

Sub test()
innerloopCellCounter = 1
For j = 1 To 82
Range("A" & j).Value = j
If j Mod 41 = 0 Then
For i = 1 To 41
Range("B" & innerloopCellCounter).Value = i
innerloopCellCounter = innerloopCellCounter + 1
Next i
End If
Next j
End Sub

"Harish" wrote:

i=1
j=1

For j = 1 to 81

if j <=20 Then
k = j+1
Else
k = j*mod(21)+2
End if
j=j+1
i=i+1
Cells(i, 3) = k
Next

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35
Default For Loop

Hi there,

I am unable to understand your solution here. Does your code ensures
that i restarts from 2 everytime j = 21, 41, 61 etc? Thanks for your
help.


  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,101
Default For Loop

Try tis one instead
Sub test()
innerloopCellCounter = 1
For j = 1 To 80
Range("A" & j).Value = j
If j Mod 21 = 1 Then
For i = 2 To 21
Range("B" & innerloopCellCounter).Value = i
innerloopCellCounter = innerloopCellCounter + 1
Next i
End If
Next j
End Sub

"Harish" wrote:

i=1
j=1

For j = 1 to 81

if j <=20 Then
k = j+1
Else
k = j*mod(21)+2
End if
j=j+1
i=i+1
Cells(i, 3) = k
Next

  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,494
Default For Loop

see if this does what you want

Sub test()
i = 1
j = 1

For j = 1 To 81
If j Mod 20 < 0 Then
Range("A" & j).Value = j
Range("B" & j).Value = i + 1
Else
Range("A" & j).Value = j
Range("B" & j).Value = i + 1
i = 0
End If
i = i + 1
Next
End Sub

--


Gary

"Harish" wrote in message
...
Hi,

I am trying to write a code such that a parameter j has to iterate
continuously but the parameter k=2 has to restart everytime j =41 or
multiples of it. Here is an example

j k
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
15 16
16 17
17 18
18 19
19 20
20 21
21 2
22 3
23 4
24 5
25 6
26 7
27 8
28 9
29 10
30 11
31 12
32 13
33 14
34 15
35 16
36 17
37 18
38 19
39 20
40 21
41 2
42 3
43 4
44 5
45 6
46 7
47 8
48 9
49 10
50 11
51 12
52 13
53 14
54 15
55 16
56 17
57 18
58 19
59 20
60 21
61 2
62 3
63 4
64 5
65 6
66 7
67 8
68 9
69 10
70 11
71 12
72 13
73 14
74 15
75 16
76 17
77 18
78 19
79 20
80 21



  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35
Default For Loop

Hi Gary,

your logic works correctly. I work with a automated testing software
and I want to use your logic in that software. This software uses VB
scripting language. I tried to implement your logic in it but it
doesnt work. I want to mention that j = 1 to 20 for some time and then
changes to j = 21 to 40 and then changes to 41 to 60. but k has to
restart everytime j = 21, 41, 61 and so on....Here is my code and I
would appreciate if you can correct the logic behind:

For j = firstnum to secondnum
If j mod(row_count-1) <0 Then
k=j+1
invoice_array(j) = Browser("").Page("_3").Frame
("_sweview_3").WebTable("Select for MultiPay").GetCellData(k,5)
Else
k=j+1
invoice_array(j) = Browser("").Page("_3").Frame("_sweview_3").WebTabl e
("Select for MultiPay").GetCellData(k,5)
k=0
End If
End if
k=k+1
Next

firstnum and second are variables that keeps changing like i said
before (1-20, 21-40, 41-60).

Thanks for your help
  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,494
Default For Loop

sorry, not sure.

what if you change this:
If j mod(row_count-1) <0 Then
to this:
If j mod(20) <0 Then


--


Gary

"Harish" wrote in message
...
Hi Gary,

your logic works correctly. I work with a automated testing software
and I want to use your logic in that software. This software uses VB
scripting language. I tried to implement your logic in it but it
doesnt work. I want to mention that j = 1 to 20 for some time and then
changes to j = 21 to 40 and then changes to 41 to 60. but k has to
restart everytime j = 21, 41, 61 and so on....Here is my code and I
would appreciate if you can correct the logic behind:

For j = firstnum to secondnum
If j mod(row_count-1) <0 Then
k=j+1
invoice_array(j) = Browser("").Page("_3").Frame
("_sweview_3").WebTable("Select for MultiPay").GetCellData(k,5)
Else
k=j+1
invoice_array(j) = Browser("").Page("_3").Frame("_sweview_3").WebTabl e
("Select for MultiPay").GetCellData(k,5)
k=0
End If
End if
k=k+1
Next

firstnum and second are variables that keeps changing like i said
before (1-20, 21-40, 41-60).

Thanks for your help



  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,986
Default For Loop

Hi Harish, see if this does what you want.

Sub terfuge()
Dim j, k

j = 1
k = 1

With ActiveSheet
For j = 1 To 80
.Cells(j, 1) = j
.Cells(j, 2) = k + 1
k = k + 1
If j 1 And j Mod 20 = 0 Then
k = 1
End If
Next
End With
End Sub


"Harish" wrote:

Hi Gary,

your logic works correctly. I work with a automated testing software
and I want to use your logic in that software. This software uses VB
scripting language. I tried to implement your logic in it but it
doesnt work. I want to mention that j = 1 to 20 for some time and then
changes to j = 21 to 40 and then changes to 41 to 60. but k has to
restart everytime j = 21, 41, 61 and so on....Here is my code and I
would appreciate if you can correct the logic behind:

For j = firstnum to secondnum
If j mod(row_count-1) <0 Then
k=j+1
invoice_array(j) = Browser("").Page("_3").Frame
("_sweview_3").WebTable("Select for MultiPay").GetCellData(k,5)
Else
k=j+1
invoice_array(j) = Browser("").Page("_3").Frame("_sweview_3").WebTabl e
("Select for MultiPay").GetCellData(k,5)
k=0
End If
End if
k=k+1
Next

firstnum and second are variables that keeps changing like i said
before (1-20, 21-40, 41-60).

Thanks for your help



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
returning back to loop check condition without completing the loop ashish128 Excel Programming 13 April 3rd 08 12:53 PM
Loop to Filter, Name Sheets. If Blank, Exit Loop ryguy7272 Excel Programming 3 February 5th 08 03:41 PM
Naming Worksheets - Loop within a loop issue klysell Excel Programming 5 March 29th 07 05:48 AM
Naming Worksheets - Loop within a loop issue klysell Excel Programming 0 March 27th 07 11:17 PM
Advancing outer Loop Based on criteria of inner loop ExcelMonkey Excel Programming 1 August 15th 05 05:23 PM


All times are GMT +1. The time now is 12:34 PM.

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

About Us

"It's about Microsoft Excel"