ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Some help w/ simple loop, please? (https://www.excelbanter.com/excel-programming/322488-some-help-w-simple-loop-please.html)

terry b

Some help w/ simple loop, please?
 
[Excel 2002]
I'm a raw beginner w/ VBA, as evidenced by the simple problem I'm
stumped by...
All I'm trying to do is, starting w/ a clean worksheet, write a sub to
apply the value "55" to ranges beginning w/ "A1:D3", then skipping rows
4 thru 6, then entering value in range "A7:D9", etc., and setting a
stop point around row 36.
So basically, I'm trying to write a simple loop to apply formatting to
alternating bands/ranges, and am using the value "55" as a placeholder.
Here's what I'm trying to make work:

Sub PracticeBanding()
Dim MyRange As Object
Set MyRange = Range("A1:D3").Select
Do Until ActiveCell.Row 36 = True
MyRange.Value = 55
MyRange.Offset(6, 0).Select
Loop
End Sub

So what happens is, As I step through the procedure, it selects the
first range, applies the correct value, offsets down to the next range
just fine...and then fails to apply the values, and just loops back up
to original range and back down to empty range over and over....it
doesn't apply the values after the first range....
I know this is basic as gravity, but I'd sure appreciate someone
helping me with it! Thanks much for your time [:-)

terry b.


Dave Peterson[_5_]

Some help w/ simple loop, please?
 
Maybe...

Option Explicit
Sub PracticeBanding()
Dim MyRange As Range
Set MyRange = Range("A1:D3")
Do Until MyRange.Row 36
MyRange.Value = 55
Set MyRange = MyRange.Offset(6, 0)
Loop
End Sub

You could also loop through the row numbers.

Sub PracticeBanding2()
Dim iRow As Long
For iRow = 1 To 36 Step 6
Cells(iRow, "A").Resize(3, 3).Value = 66
Next iRow
End Sub



terry b wrote:

[Excel 2002]
I'm a raw beginner w/ VBA, as evidenced by the simple problem I'm
stumped by...
All I'm trying to do is, starting w/ a clean worksheet, write a sub to
apply the value "55" to ranges beginning w/ "A1:D3", then skipping rows
4 thru 6, then entering value in range "A7:D9", etc., and setting a
stop point around row 36.
So basically, I'm trying to write a simple loop to apply formatting to
alternating bands/ranges, and am using the value "55" as a placeholder.
Here's what I'm trying to make work:

Sub PracticeBanding()
Dim MyRange As Object
Set MyRange = Range("A1:D3").Select
Do Until ActiveCell.Row 36 = True
MyRange.Value = 55
MyRange.Offset(6, 0).Select
Loop
End Sub

So what happens is, As I step through the procedure, it selects the
first range, applies the correct value, offsets down to the next range
just fine...and then fails to apply the values, and just loops back up
to original range and back down to empty range over and over....it
doesn't apply the values after the first range....
I know this is basic as gravity, but I'd sure appreciate someone
helping me with it! Thanks much for your time [:-)

terry b.


--

Dave Peterson

terry b

Some help w/ simple loop, please?
 
For Dave P.
Thanks very much for your time! Your code (both) works w/out a flaw.

Now all I need to do is study what you've done and see why it
works....
Could you possibly check that thread tomorrow, & see if I've added
to it?
Thanks again [:-)

terrry b.


Dave Peterson[_5_]

Some help w/ simple loop, please?
 
One of the nice things about the newsgroups is that anyone who reads your posts
will be able to jump in and help.

It's always nice to get a few opinions/methods of doing things.

terry b wrote:

For Dave P.
Thanks very much for your time! Your code (both) works w/out a flaw.

Now all I need to do is study what you've done and see why it
works....
Could you possibly check that thread tomorrow, & see if I've added
to it?
Thanks again [:-)

terrry b.


--

Dave Peterson

Claud Balls

Some help w/ simple loop, please?
 
Sub Macro1()
Dim PlaceValue As Boolean, icount As Integer
PlaceValue = True
icount = 0
For Each c In Range("A1:D36")
If PlaceValue Then c.Value = "55"
icount = icount + 1
If icount = 12 Then
If PlaceValue Then
PlaceValue = False
Else
PlaceValue = True
End If
icount = 0
End If
Next c

End Sub

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!

Mike Fogleman

Some help w/ simple loop, please?
 
Dave was resetting the range to the offset before the loop starts again.
Otherwise the loop was using the same range over and over.

Mike F
"terry b" wrote in message
oups.com...
For Dave P.
Thanks very much for your time! Your code (both) works w/out a flaw.

Now all I need to do is study what you've done and see why it
works....
Could you possibly check that thread tomorrow, & see if I've added
to it?
Thanks again [:-)

terrry b.




terry b

Some help w/ simple loop, please?
 
Thanks to All for replies,
I stared at the three subs suggested until the logic was apparent.
And I've already 're-worked' the basic code into other formatting
modules. And they work great!
Thanks again for your time, people [:-)

terry b.



All times are GMT +1. The time now is 07:08 AM.

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