Excel.Tips.Net Welcome toExcel.Tips.Net

Helpful Links

Tips.Net Home
ExcelTips Home
Ask an Excel Question
Make a Comment

Tips.Net Store

ExcelTips FAQ
ExcelTips Premium

Learn Access Now
Free Printable Forms

Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Legal Tips
Money Tips
Organizing Tips
Pest Tips
Pet Tips
Wedding Tips
Word2007 Tips
WordTips

Advertise on the
ExcelTips Site

Newest Tips

Removing Borders

Converting to Octal

Filtering Columns for Unique Values

Printing Multiple Worksheets on a Single Page

Changing the Default Font

Creating a Drawing Object

Determining a Value of a Cell

 

Automatically Copying Formatting

Summary: You can easily copy the contents of one cell to another using a formula. There is no way to similarly copy formatting from one cell to another. There are a couple of workarounds you can use, relying either on macros or on the Camera tool. (This tip works with Microsoft Excel 97, Excel 2000, Excel 2002, and Excel 2003.)

One of the foundational features of Excel is to allow one cell to be equal to another cell. For instance, you could use the most simple of formulas in a cell:

=C7

This copies the contents from cell C7 to the current cell, and updates whenever the contents of cell C7 change. What if you are not just interested in copying cell values, but also want to copy formatting from one cell to another?

Unfortunately, there is no intrinsic way to do this in Excel. There are two workarounds you can try, however. First, you can create a macro that will find out whenever cell C7 changes, and it does, the macro copies the contents of the cell (including formatting) to the target cell. For instance, the following macro will run every time there are changes in the worksheet. When the change is in cell C7, then the contents of C7 are copied to cell E3 on Sheet1.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Not Intersect(Target, Range("C7")) Is Nothing Then
        Range("C7").Copy (Worksheets("Sheet1").Range("E3"))
    End If
End Sub

There are some downsides to this approach. First, it can be slow, particularly if you have quite a few cells that you want to copy in this manner. In addition, the macro only runs if the contents of cell C7 are actually changed, not if the formatting alone of C7 is changed. (There is no way to trigger an automatic event whenever formatting is changed.)

An alternative to the macro approach is to use the Camera tool in Excel. This has been covered in other issues of ExcelTips, but essentially the camera is a way to copy a dynamic image of a range of cells from one place to another. It is the image of the source cells that is shown, and it is shown as a graphic, not as the contents of any target cells. Since the graphic is dynamic, whenever the source cells are changed (including formatting), the image is also updated to reflect the change.

To use the Camera tool, you must customize your toolbar so that the tool is available; it is not available by default. When you are doing your customizing, the Camera tool is available on the Commands tab in the Tools section. It is near the bottom of the list of commands and looks--oddly enough--like a small camera.

With the Camera tool in place, follow these steps to use it:

  1. Select the cells or range of which you want a picture taken.
  2. Click on the Camera tool. The mouse pointer changes to a large plus sign.
  3. Change to a different worksheet.
  4. Click where you want the top left-hand corner of the picture to appear. The picture is inserted as a graphic on the worksheet.

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (2769) applies to Microsoft Excel versions: 97 | 2000 | 2002 | 2003

Make Home Buying Less Stressful! Why make home buying harder than it needs to be? Put your mind at ease—discover all the questions you need to ask to make the best buying decision.
 
Check out Buying a Home Checklist today!