How to use a macro to apply cell shading format to every other row in a selected range in Excel

Support for Office 2003 has ended

Microsoft ended support for Office 2003 on April 8, 2014. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

This article was previously published under Q213616
Microsoft Excel automatically formats new data that you type at the end of a list to match the previous rows. You can also format a list programmatically. This article contains a sample Microsoft Visual Basic for Applications procedure to shade every other rowin a selection.
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
To see the patterns available in Microsoft Office Excel 2003 and in earlier versions, click Cells on theFormat menu, and then click the Patterns tab.

To see the patterns available in Microsoft Office Excel 2007, follow these steps:
  1. On the Home tab, click Format in the Cells group . Then, click Format Cells..
  2. In the Format Cells dialog box, click the Fill tab.
The Pattern drop-down list displays the available patterns. The pattern that is used in the following macro, referred to by its constant name, xlGray16, is the fifth one from the right in the first row.

The following macro sets the pattern in every other row of the currentselection to xlGray16.

Sample Visual Basic Procedure

Sub ShadeEveryOtherRow()    Dim Counter As Integer    'For every row in the current selection...    For Counter = 1 To Selection.Rows.Count        'If the row is an odd number (within the selection)...        If Counter Mod 2 = 1 Then            'Set the pattern to xlGray16.            Selection.Rows(Counter).Interior.Pattern = xlGray16        End If    NextEnd Sub				
Note This macro runs only on the rows of the selected range. If you add any new rows of data after you run the macro, you must run the macro again with all the new rows of data selected.

This process can also be done manually by using conditional formatting.

For additional information about how to format every other row by using conditional formatting, click the following article number to view the article in the Microsoft Knowledge Base:
268568 How to use conditional formatting to shade every other row in Excel
You can also format a list by using the AutoFormat menu command. In Excel 2003 and in Microsoft Excel 2002, the AutoFormat menu command is on the Format menu. In Excel 2007, you have to add the AutoFormat menu command to the Quick Access Toolbar. To do this, follow these steps:
  1. Click Microsoft Office Button, and then click Excel Options.
  2. Click Customize.
  3. Click to select the All Commands under the Choose commands from.
  4. Click AutoFormat, click Add, and then click OK.
For additional information about how to obtain help with Visual Basic for Applications, click the following article number to view the article in the Microsoft Knowledge Base:
226118 List of resources that are available to help you learn Visual Basic for Applications programming

Article ID: 213616 - Last Review: 01/10/2007 18:43:08 - Revision: 7.0

Microsoft Office Excel 2007, Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition, Microsoft Excel 2000 Standard Edition, Microsoft Excel 97 Standard Edition, Microsoft Excel 2004 for Mac, Microsoft Excel X for Mac, Microsoft Excel 2001 for Mac, Microsoft Excel 98 for Macintosh

  • kbexpertisebeginner kbdtacode kbhowto kbprogramming KB213616