Excel - Conditional format if cell contains formula

Asked By Jean-Mar on 13-Aug-08 08:59 PM
Is there a way (conditional formatting?) to apply a different format to cells
that contain a formula, as opposed to cells that have a directly entered
value?




YongHen replied on 14-Aug-08 12:09 AM
sure.

here's an example

A              B     C     D     E     F     G
1                     no1 no2 no3 no4 no5 no6
2   ticket1      2     15   26  27   36  38
3   ticket2      1     12   13  15   24  34
4   ticket3      3     5      20  28  37  40
5
6   drawn         3     15    25   26  47 49

1.  Select cells B2:G4
2.  Select Conditional Formatting
3. Choose Formula Is (as opposed to Cell value is)
4. For the formula, use the CountIf function:
=COUNTIF($B$6:$G$6,B2)
5. Click the Format button.
6. Select formatting options (choose a color for the cell), click OK

What happens is that the conditional formatting formula will evaluate each
cell to see if it should "count" according to the criteria. Once it is

Try it, its fun.

Yong Heng
JeanMar replied on 14-Aug-08 12:39 AM
Thanks, but you misunderstood my question. I am familiar with the operation
of conditional formats. Here is a simple example of what I want to achieve:
Cell A1 contains value '1'
Cell A2 contains value '2'
Cell A3 contains formula '=SUM(A1:A2)'

Now what I would like is for cell A3 to be shown on a blue background,
because it is a formula, whilst cells A1 and A2 should remain in the default
format, because they are manually entered values. Basically is there an Excel
function that is able to detect whether a cell is a formula or a single
value? In other words, if the cell entry starts with '=', then I would like
it to be formatted differently. Sounds easy, but I am stumped. Excel seems to
only consider the *Value* in a cell, but not whether that value comes from a
manual entry or a formula calculation.
Peo Sjoblom replied on 14-Aug-08 01:17 AM
You can use Excel 4 macro in a defined name formula to check if cell has a
formula, using you example
do insert>name>define, in the source box put

=GET.CELL(6,Sheet1!$A1)

and in the name box type in something descriptive like

FormulaIs

click OK


Select A1:A3
with A1 as the active cell, do format>conditional formatting, select formula
is
and use

=LEFT(FormulaIs)="="

or in a pedagogic manner

=LEFT(FormulaIs,1)="="

you can actually leave out 1 if you just want one character

now click the format button and select format and click OK twice


--


Regards,


Peo Sjoblom
JeanMar replied on 14-Aug-08 01:37 AM
Excellent - works great. Thanks. You are a guru.
T. Valko replied on 14-Aug-08 01:59 AM
You can use a UDF (user defined function):

Function IsFormula(cell_ref As Range)
IsFormula = cell_ref.HasFormula
End Function

To use this:

Open the VBE editor: ALT F11
Open the Project Explorer: CTRL R
Locate your file name in the project explorer pane on the left.
Right click the file name
Select: Insert>Module
Copy the code above and paste into the window on the right
Return back to Excel: ALT Q

Set the conditional formatting...
Select the cell(s) in question. Assume this is cell A1.
Goto Format>Conditional Formatting
Formula Is: =IsFormula(A1)
Click the Format button
Select the desired style(s)
OK out


--
Biff
Microsoft Excel MVP
JeanMar replied on 14-Aug-08 02:17 AM
Thanks. Very elegant solution.
T. Valko replied on 14-Aug-08 01:32 PM
You're welcome. Thanks for the feedback!

--
Biff
Microsoft Excel MVP
Bertus Swanepoel replied on 26-Sep-08 09:29 AM
Hi, I have done this the UDF way, but now excel behaves strangely.  I have applied the conditional formatting to cells in Sheet2.  If I want to pick up a value from sheet 2 in sheet1 (formula in sheet 1 A1: ='Sheet2'!B6), nothing happend in sheet 1.  Instead excel inputs a formula in a random cell in sheet 2 which refers to itself creating a circular reference.  When I clear the conditional formatting from sheet 2 all is fine.  Has anyone experienced this?
Bertus Swanepoel replied on 26-Sep-08 09:31 AM
Hi, I have done this the UDF way, but now excel behaves strangely.  I have applied the conditional formatting to cells in Sheet2.  If I want to pick up a value from sheet 2 in sheet1 (formula in sheet 1 A1: ='Sheet2'!B6), nothing happend in sheet 1.  Instead excel inputs a formula in a random cell in sheet 2 which refers to itself creating a circular reference.  When I clear the conditional formatting from sheet 2 all is fine.  Has anyone experienced this?  I am working in Excel 2007.



thanks
Bertu replied on 16-Oct-08 06:09 AM
Hi,

The UDF code is:

Function IsFormula(cell_ref As Range)
IsFormula = cell_ref.HasFormula
End Function

The conditional formatting formula I use is:
=isformula(A1)
I then select the cells I want to apply this to in the applies to section.

I have another conditional format to format all other text differently:
=ISBLANK(A1) = FALSE

So in sheet 1 I enter in E31: = 'Sheet2'!C28.  when I hit enter E31 in Sheet
1 remains blank but in sheet2'!E32 a formula is entered saying Sheet1!D26.
Gord Dibben replied on 16-Oct-08 02:40 PM
I see what you mean but only if I enter an = sign in sheet1 E31 then point
and click on sheet2 C28.

If I enter  =sheet2!C28  all works OK.

I cannot explain why the point and click reacts as it does.


Gord

On Thu, 16 Oct 2008 03:09:00 -0700, Bertus
Martin replied on 07-Jun-09 06:26 PM
You are required to be a member to post replies.  After logging in or becoming a member, you will be redirected back to this page.
Mike N replied to Gord Dibben on 16-Mar-10 05:07 PM
I have the same problem with this function - was a solution ever found?
monu 1123 replied to Peo Sjoblom on 16-Oct-10 02:42 AM
How can we apply this in openoffice calc spreadsheets??

what modifications will be require?
Martin Ruf replied to T. Valko on 13-Jan-11 06:43 AM
Hi Biff,



I used your suggestion and it worked perfectly! It was exactly what I wanted to do...

But after I saved my file the conditional formatting function didn't work anymore... I have no idea why?!?



So when I look in the creatded module thingy it still states

your suggested formula:



Function IsFormula(cell_ref As Range)

IsFormula = cell_ref.HasFormula

End Function



Also the conditional formatting formula is still there =IsFormula(M1) (M in my case)

It is supposed to highlight cells with formula in red colour and values (no formulas) in white (actually in green since this is my background colour).

Anyhow... everything is green after I saved the file.

Any suggestions from your side?



Thanks in advance and best regards,

Martin
Martin Ruf replied to Martin Ruf on 13-Jan-11 08:17 AM
Nevermind... didn't activate macros. So problem solved :P
philos in replied to T. Valko on 21-Apr-11 01:47 PM
Just wanted to reinforce the feedback. Indeed very elegant...clarity of thought and code.