This video tutorial demonstrates how you can apply blinking conditional formatting to a range of cells in Excel. The solution requires you to use a VBA macro as there is no inbuilt functionality that will achieve this – please see the code below.
In the code provided you can specify how many times the cells blink by changing the number of For Next loops that are performed, by default it is two. Why only two? Whilst the blinking effect is applied the worksheet is unusable as the code is busy looping in the background. I would think carefully about using this effect in a worksheet for this reason.
Please download the featured file here. Note the file does not contain the VBA code as I am unable to upload Macro Enabled files to this website.
Here’s the code featured in the video. Please feel free to copy it into your own project.
Private Sub Worksheet_Change(ByVal Target As Range) Dim SalesValue As Range Dim SalesField As Range Set SalesField = Range("B2", Range("B2").End(xlDown)) Dim SalesTarget As Range Set SalesTarget = Range("E1") Dim CellsToBlink As Range Dim I As Byte 'Only run the code below if either the sales or sales target values are changed If Not Intersect(Target, Union(SalesField, SalesTarget)) Is Nothing Then SalesField.Interior.Color = vbWhite 'Reset all cell background colours in column B to white For Each SalesValue In SalesField 'For each sales figure in the sales field If SalesValue >= SalesTarget Then 'If the sales value has met the target If CellsToBlink Is Nothing Then ' and if the CellsToBlink variable is empty ' store the current SalesValue in the CellsToBlink Variable Set CellsToBlink = SalesValue Else 'if the CellsToBlink variable is not empty, 'add the new SalesValue to the CellsToBlink variable Set CellsToBlink = Union(SalesValue, CellsToBlink) End If End If Next SalesValue 'Now all the eligible cells have been added to the CellsToBlink variable 'Change the cells's background colour to yellow then white with a 1 second interval For I = 1 To 2 'do this twice CellsToBlink.Interior.Color = vbYellow Application.Wait Now + TimeValue("00:00:01") CellsToBlink.Interior.Color = vbWhite Application.Wait Now + TimeValue("00:00:01") Next I 'Once the blinking is over change any eligible cell's background colour to yellow CellsToBlink.Interior.Color = vbYellow End If End Sub