![]() |
![]() |
|
|||||||
| Excel Questions All Excel/VBA questions - formulas, macros, pivot tables, general help, etc. Please post to this forum in English only. |
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 |
|
New Member
Join Date: May 2002
Posts: 4
|
I am new to this BB and have found the content very helpful in learning how to create macros. Thanks to all for sharing your knowledge.
Now for my problem: I have a macro that copies data fields from multiple workbooks and multiple worksheets into one output worksheet. On the output worksheet, I am trying to format every 3rd row the same (i.e. fill color is Yellow). The number of rows in the output file is variable in length and changes regularly. Can someone help me with the code for the Macro to format every 3rd row the same through the last row of data in the output sheet and not beyond? Thanks. |
|
|
|
|
|
#2 |
|
Legend
Join Date: Feb 2002
Location: Minneapolis, Mn, USA
Posts: 9,704
|
The following will add a conditional format to your worksheet (yellow), I like the conditional format as it's dynamic, if you delete a row, it will automatically offset. This starts on row 3 and goes every third:
Code:
Sub colorin()
Dim i As Long
i = [a65536].End(xlUp).Row
Sheet1.Range("a1:b" & i).FormatConditions.Add Type:=xlExpression, _
Formula1:="=MOD(ROW(),3)=0" ' first sheet
Sheet1.Range("a1:b" & i).FormatConditions(1).Interior.ColorIndex = 36
End Sub
Cheers, NateO [ This Message was edited by: NateO on 2002-05-17 14:41 ] |
|
|
|
|
|
#3 |
|
Legend
Join Date: Feb 2002
Location: Minneapolis, Mn, USA
Posts: 9,704
|
Or if you want the first row, then offset three try:
Code:
Sub colorin2()
Dim i As Long
i = [a65536].End(xlUp).Row
Sheet2.Range("a1:b" & i).FormatConditions.Add _
Type:=xlExpression, _
Formula1:="=OR((MOD((ROW()-1),3)=0),(ROW()=1))" ' first sheet
Sheet2.Range("a1:b" & i).FormatConditions(1).Interior.ColorIndex = 36
End Sub
Cheers, NateO ![]() [ This Message was edited by: NateO on 2002-05-17 14:42 ] |
|
|
|
|
|
#4 |
|
Board Regular
Join Date: Feb 2002
Location: Southfield,MI USA
Posts: 1,030
|
G'day all,
NatO beat me to it but here's another bit (my beginner approach): Sub Format3rdrow() Dim Rownum As Integer Sheets("sheet1").Activate Rownum = 3 Do While Rownum < 20 Rows(Rownum).Select With Selection.Interior .ColorIndex = 6 .Pattern = xlSolid End With Rownum = Rownum + 3 Loop End Sub Adam |
|
|
|
|
|
#5 |
|
Board Regular
Join Date: Feb 2002
Posts: 3,065
|
the loop method could prove slow but none less efective i add...
__________________
Free Excel based Web Toolbar available here. Jack in the UK J & R Excel Solutions "making Excel work for you" |
|
|
|
|
|
#6 |
|
Board Regular
Join Date: Apr 2002
Posts: 113
|
You can do also this without a macro: Format > Conditional formatting > formula. (Though a macro is obviously appropriate in your case because the worsksheet is generated by a macro.)
Regards. Brian |
|
|
|
|
|
#7 |
|
New Member
Join Date: May 2002
Posts: 4
|
Thanks for the responses.
I have not had a chance to try them out yet and I did not want to wait to say thanks to those who responded. |
|
|
|
![]() |
| Bookmarks |
| Thread Tools | |
| Display Modes | |
|
|