Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Worksheet Functions / July 2008

Tip: Looking for answers? Try searching our database.

How to tell if cell contains a FORMULA or user-entered number?

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
rcmodelr - 19 Jun 2005 16:31 GMT
I have a spreadsheet to maintain truck weights.

If the weighmaster enters a Gross, and a Secondary Gross, the spreadsheet
should calculate the amount of shrink (Gross - Secondary Gross).

If the weighmaster enters ONLY a Gross and a Tare weight, the spreadsheet
should give an ESTIMATED shrink calculation, then show the result of Gross -
Estimated Shrink in the Secondary Gross column.

How can I do this???  Only way I could think of is with some way to
determine whether Secondary Gross column cell contains a USER ENTERED NUMBER,
or still has the formula to arrive at the ESTIMATED secondary weight.  If
Secondary Gross has a formula, then Shrink should be Gross * .005, and
Secondary Gross should show result of Gross - Shrink.

If BOTH Gross AND Secondary Gross cells contain user entered numbers, Shrink
should contain result of Gross - Secondary Gross.

Btw... My employer has Excel 2000.  So please, if you have a solution, try
to make it one I can implement in Excel 2000.
JMB - 19 Jun 2005 18:47 GMT
You could set up a formula for secondary gross to test Tare to see if it is
>0.  If the secondary gross is known, you could key over the formula.

    A                   B                    C                   D          
         
Gross        2ndary Gross          Tare              Shrink

B2: =IF(C2>0,A2*(1-0.005),0)
D2: A2-B2

Or, you could set up an Estimated Secondary Gross column

    A                   B                    C                     D        
            E
Gross        2ndary Gross      Est 2ndaryGross     Tare              Shrink  
 

C2: =IF(D2>0,A2*(1-0.005),0)
E2: =IF(B2>0,A2-B2,A2-C2)

If Tare is not numeric you can change the >0 test to <>""  or use
ISBLANK(D2)=FALSE.  I don't know of a way (without using VBA) to test a cell
for a formula versus a user entered value.

> I have a spreadsheet to maintain truck weights.
>
[quoted text clipped - 16 lines]
> Btw... My employer has Excel 2000.  So please, if you have a solution, try
> to make it one I can implement in Excel 2000.
rcmodelr - 19 Jun 2005 23:09 GMT
That would work... EXCEPT that the secondary Gross cells by default have the
formula to subtract contents of Shrink from Gross to arrive at an Estimated
Secondary gross.  So until a secondary gross, or both a Gross AND tare weight
are entered, Secondary Gross is Null.  Forgot to include.  If No secondary
Gross is entered, the Estimated Shrink is calculated from the NET Weight (
Gross - Tare).

So right now, I have 2 spreadsheet setup files... One for when the scale at
the plant is working, and a second that figures strictly an estimated shrink
as long as the trucks need to be weighed elsewhere.

  a             b                  C          D           E
Gross  Secondary    Tare        Net       Shrink

Default cell contents

A  Blank
B   Formula to give estimated secondary gross    =A2-E2
C   Blank
D   Formula (assuming in row 2)  =A2 -C2
E.  on sheet for estimated shrink    =D2 * .005

Ideally, the formula for shrink should determine if secondary Gross still
has the default formula or user entered number since THAT would determine how
to calculate Shrink

If Secondary Gross is user-entered, Shrink should be Gross - Secondary Gross
(=A2-B2)
If Secondary Gross still contains default formula, Shrink should use
Estimate (=D2*.005)

If nothing else, if you know how to do this with a user defined VBA function
that could be used in the spreadsheet, tell me.

I already programmed the spreadsheet setup in VBA so to set up the sheet,
the user only has to know the lot number, farm name, how many loads, and the
catch count, and the VBA coding will set up the spreadsheet with properly
placed total lines, grand totals, and correctly format the shift related
summary page of the spreadsheet.  So I'm by no means afraid to do this with
an added in VBA coded spreadsheet function to test whether B2 contains a
Formula.

> You could set up a formula for secondary gross to test Tare to see if it is
> >0.  If the secondary gross is known, you could key over the formula.
[quoted text clipped - 40 lines]
> > Btw... My employer has Excel 2000.  So please, if you have a solution, try
> > to make it one I can implement in Excel 2000.
JMB - 19 Jun 2005 23:26 GMT
copy this into a VBA code module

Function ISFormula(Target As Range)
ISFormula = Target.HasFormula
End Function

In your worksheet for Shrink, enter
=IF(ISFormula(B2),D2*.005,A2-B2)

> That would work... EXCEPT that the secondary Gross cells by default have the
> formula to subtract contents of Shrink from Gross to arrive at an Estimated
[quoted text clipped - 82 lines]
> > > Btw... My employer has Excel 2000.  So please, if you have a solution, try
> > > to make it one I can implement in Excel 2000.
Ed Canuck - 31 Oct 2006 22:32 GMT
Many thanks,

I was wracking my brains with the same problem.

Do you happen to know why IsRef doesn't equate to this?  I tried to use
IsRef, but it responds True when the cell contains a number that's not a
formula.

Ed

> copy this into a VBA code module
>
[quoted text clipped - 91 lines]
> > > > Btw... My employer has Excel 2000.  So please, if you have a solution, try
> > > > to make it one I can implement in Excel 2000.
JMB - 01 Nov 2006 04:41 GMT
I've never used the ISREF function - so I don't know much about it.  But it
seems that

=ISREF(A1) returns True, since it is a reference to cell A1, while
=ISREF("A1") returns False
=ISREF(2) returns False

It appears that ISREF does not evaluate the target cell to see if it is a
reference, only ISREF's immediate argument.

I s'pose one use could be to see if a dynamic named range exists.  Consider
the dynamic named range Test, which is defined as
=OFFSET(Sheet2!$A$1,0,0,COUNT(Sheet2!$A:$A),1)

Basically, the named range doesn't exist until numeric data is entered into
column A of sheet2.  ISREF could be used to determine if the named range
exists.

=IF(ISREF(Test), "Range Exists", "Range Does Not Exist")

> Many thanks,
>
[quoted text clipped - 101 lines]
> > > > > Btw... My employer has Excel 2000.  So please, if you have a solution, try
> > > > > to make it one I can implement in Excel 2000.
Valerie - 03 Jan 2008 19:25 GMT
This is great!! I have been wracking my brain trying to figure out a way to
do this! This also works great with conditional formatting so I can tell
which cells have been written over with text.
Thanks!
Valerie

> copy this into a VBA code module
>
[quoted text clipped - 91 lines]
> > > > Btw... My employer has Excel 2000.  So please, if you have a solution, try
> > > > to make it one I can implement in Excel 2000.
JMB - 04 Jan 2008 04:51 GMT
quite welcome - glad it helped.

> This is great!! I have been wracking my brain trying to figure out a way to
> do this! This also works great with conditional formatting so I can tell
[quoted text clipped - 97 lines]
> > > > > Btw... My employer has Excel 2000.  So please, if you have a solution, try
> > > > > to make it one I can implement in Excel 2000.
Amarpas - 20 May 2008 17:29 GMT
Thanks very much!  I have also often wished for a formula-detecting formula!
Can this VBA be used to create custom formulas, so long as the function
makes sense in VBA?

Thanks, again.
Amarpas

> quite welcome - glad it helped.
>
[quoted text clipped - 99 lines]
> > > > > > Btw... My employer has Excel 2000.  So please, if you have a solution, try
> > > > > > to make it one I can implement in Excel 2000.
Rick Rothstein (MVP - VB) - 20 May 2008 17:40 GMT
> Thanks very much!  I have also often wished for a formula-detecting
> formula!
> Can this VBA be used to create custom formulas, so long as the function
> makes sense in VBA?

Yes, you can create a formula-detecting formula using VBA. In the VBA
editor, click Insert/Module and copy/paste this code into the code window
that appears...

Function CellHasFormula(CellReference As Range) As Boolean
 CellHasFormula = CellReference.HasFormula
End Function

You can now use CellHasFormula just like any other worksheet function. For
example...

=IF(CellHasFormula(A1),"Yes","No")

Rick
JMB - 20 May 2008 23:49 GMT
Yes, you can use vba to create your own functions.  

Just bear in mind that functions called from an XL worksheet cannot "do"
things (such as formatting, putting values in other cells, etc) to the same
extent that they can when called from another vba procedure - they can only
return a value.

> Thanks very much!  I have also often wished for a formula-detecting formula!
> Can this VBA be used to create custom formulas, so long as the function
[quoted text clipped - 106 lines]
> > > > > > > Btw... My employer has Excel 2000.  So please, if you have a solution, try
> > > > > > > to make it one I can implement in Excel 2000.
AnimalMagic - 30 Jul 2008 01:47 GMT
Can't one simply test for the presence of the = sign as the first
character of the cell's contents?  does a cell value poll always return
the calculated result when a formula is present?  What if "Show Formulas"
is "on".

 Can a formula for use in a cell be "created" on the fly with text
strings which are assembled at runtime?

>Thanks very much!  I have also often wished for a formula-detecting formula!
>Can this VBA be used to create custom formulas, so long as the function
[quoted text clipped - 106 lines]
>> > > > > > Btw... My employer has Excel 2000.  So please, if you have a solution, try
>> > > > > > to make it one I can implement in Excel 2000.
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.