Please Note: This article is written for users of the following Microsoft Excel versions: 97, 2000, 2002, and 2003. If you are using a later version (Excel 2007 or later), this tip may not work for you. For a version of this tip written specifically for later versions of Excel, click here: Flashing Cells.
Many people use the conditional formatting features of Excel to draw attention to specific values or areas of their worksheets. For instance, a cell might be formatted so that its contents are displayed in red or in boldface if above or below a certain threshold.
What is missing, however, is a way to make the contents of a cell flash, or blink on and off. For such a feat, you are left to your own devices and the miracle of macros. By utilizing these tools, you can make cells blink by first designing a special style for the blinking cells, and then running a simple macro.
To create the special style, follow these steps:
- Select the cell that you want to flash on and off.
- Choose Style from the Format menu. Excel displays the Style dialog box. (See Figure 1.)
Figure 1. The Style dialog box.
- In the Style Name box, enter a new style name. (For this example, use the style name Flashing.)
- Using the controls in the dialog box, modify any attributes for the style, as you desire.
- Click on OK.
You can now apply the style to any other cells you desire in your workbook. Now create the macros (there are two of them), as follows:
Dim NextTime As Date
NextTime = Now + TimeValue("00:00:01")
If .ColorIndex = xlAutomatic Then .ColorIndex = 3
.ColorIndex = 5 - .ColorIndex
Application.OnTime NextTime, "StartFlash"
Application.OnTime NextTime, "StartFlash", schedule:=False
ActiveWorkbook.Styles("Flashing").Font.ColorIndex = xlAutomatic
To start the items flashing, simply run StartFlash. The cells formatted with the Flashing style will alternate between red and white text approximately once a second. When you want to turn the flashing off, simply run the StopFlash macro.
There is one important thing to note about this macro: the variable NextTime is declared outside of the actual procedure in which it is used. This is done so that NextTime maintains its value from one invocation of StartFlash to the next.
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (2134) applies to Microsoft Excel 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Excel (Excel 2007 and later) here: Flashing Cells.
Program Successfully in Excel! John Walkenbach's name is synonymous with excellence in deciphering complex technical topics. With this comprehensive guide, "Mr. Spreadsheet" shows how to maximize your Excel experience using professional spreadsheet application development tips from his own personal bookshelf. Check out Excel 2013 Power Programming with VBA today!
Comments for this tip:
Kadr Leyn 04 Aug 2015, 14:58
I made a template about flashing cell.
Barry 31 Jul 2015, 05:54
I have a spreadsheet that does exactly this.
I use a very simple macro that toggles the value of a "Name" once per second. Then I use conditional formatting to either highlight the target cell or not dependent on the value in the Name.
NB a Name doesn't have to refer to a Named range which it is most commonly used for but can hold variables, or even formulas.
In a code "Module":
Public HighlightTime As Date
If ThisWorkbook.Names("Flash") = "=1" Then
ThisWorkbook.Names("Flash").Value = "=0"
ThisWorkbook.Names("Flash").Value = "=1"
HighlightTime = Now + TimeValue("00:00:01") 'SetTime for +1 secs
Application.OnTime HighlightTime, "RefreshHighLight"
and on the "ThisWorkbook" codepage:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime HighlightTime, "RefreshHighLight", , False
Private Sub Workbook_Open()
Then in any cell you want to flash use the conditional formatting forumla: "=Flash=1" and whatever formatting you desire.
NOTE: the placement of the macro on the specified codepages/modules it important.
and the use of these macros clears the "Undo" stack.
Paul 30 Jul 2015, 08:38
Is it possible to highlight a cell say in yellow and just have the highlighted colour flash on and off. The contents i.e. text or numbers of the cell should stay the same.
Allen 18 May 2015, 19:45
Very handy! I use it inside a stopwatch macro for tracking billable hours while I work.
Instead of changing font colour, though, it may be easier just to toggle bold:
.Bold = Not .Bold
Glenda D 20 Jan 2015, 14:16
Just a tip for others, DON'T use black as the base color. The macro is subtacting to get the alternate color. And BLACK is 1.
Styles format menu is accessed from HOME ribbon, Styles box, Cell Styles drop down.
BHAVESH 17 Dec 2014, 07:04
This is bhavesh form ahmedabad, India. I had trying this above mentioned code but it given error.
please give me idea
awyatt 05 Nov 2014, 09:49
This page is for users of older versions of Excel, as noted at both the beginning and end of the tip. Also in those places (beginning and end) is a link to a tip for later versions of Excel, including yours.
Roger 05 Nov 2014, 09:34
Hello, I'm using Excel 2010 but I cannot find the Format menu that you mention. I do have a Format Cells menu but that does not have a tab for Styles. Can you please advise.
Tim 30 Aug 2014, 23:59
Can you show us how to associate new style "Flashing" to the new created macro using VB?
vinit kumar jha 15 Jul 2014, 08:29
I am vinit and wanted to use Flash option in a cell...already created module as per above mentioned VB code...
but getting " Run time error 9)
Script out of range..
.ColorIndex = 5 - .ColorIndex
John Morgan 17 Oct 2013, 11:20
I am trying to use the Flashing Cells Tip.
It is giving me a compilation error
"unable to set the ColorIndex property of the Font class".
The debugger highlights the code
".ColorIndex = 5 - .ColorIndex"
I am using 2002 Excel.
Can you help me please.
Asif Kamal 17 Sep 2013, 06:34
Dave 05 Jul 2013, 07:57
Is it possible to make the cell flash if the date is reaching close to 30 days. I want to be notified that a client has not called within the 30 days period so that when it starts to flash I can call them.
Barry Fitzpatrick 01 Jun 2013, 06:21
It is some times easier for Users simply to have the macro toggle a cell value between TRUE and FALSE and use conditional formatting to flash whatever formatting the user desires without the need to delve into the macro itself and the to have knowledge of properties of the of cells and restrictions on the value they can be set to.
Leave your own comment: