ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Refer to selected cell in custom function (https://www.excelbanter.com/excel-programming/322752-refer-selected-cell-custom-function.html)

Snowsride

Refer to selected cell in custom function
 
When I use an Excel function I type =FunctionName( I then move the active
cell to the one on which I want to perform the calculation and then type )
and hit enter.

I want to create a custom function but can't figure out how to include a
reference to the cell on which the formula is to be performed. I've recorded
a macro using a built in Excel function thus:

Cell D2 is the active cell and I enter the formula =Weeknum(a2) which Excel
records as

ActiveCell.FormulaR1C1 = "=WEEKNUM(RC[-3])"

But this will only work if the cell to be referenced is 3 colums to the left
of the cell that holds the formula. I want to use the function in any cell
and perform it's calculation on any other cell i.e. I wnat to use my function
like any other Excel function.

How can I do this please?


Juan Pablo González

Refer to selected cell in custom function
 
Use Application.Caller to return the range where the function is being
called from.

--
Regards

Juan Pablo González

"Snowsride" wrote in message
...
When I use an Excel function I type =FunctionName( I then move the

active
cell to the one on which I want to perform the calculation and then type )
and hit enter.

I want to create a custom function but can't figure out how to include a
reference to the cell on which the formula is to be performed. I've

recorded
a macro using a built in Excel function thus:

Cell D2 is the active cell and I enter the formula =Weeknum(a2) which

Excel
records as

ActiveCell.FormulaR1C1 = "=WEEKNUM(RC[-3])"

But this will only work if the cell to be referenced is 3 colums to the

left
of the cell that holds the formula. I want to use the function in any

cell
and perform it's calculation on any other cell i.e. I wnat to use my

function
like any other Excel function.

How can I do this please?




K Dales[_2_]

Refer to selected cell in custom function
 
You can pass the range to be used as a parameter to your function; here is a
very simple example:

Public Function MyFunction(MyRange As Range) As String

MyFunction = "Cell Contains " & MyRange.Value

End Function

This is the general method for supplying a user-specified cell (or range of
cells) to a function; your function can then refer to the range in several
ways: as an object, with all the methods and properties; by address
(MyRange.Address) or by contents (MyRange.Value) and use these in any
calculations.

"Snowsride" wrote:

When I use an Excel function I type =FunctionName( I then move the active
cell to the one on which I want to perform the calculation and then type )
and hit enter.

I want to create a custom function but can't figure out how to include a
reference to the cell on which the formula is to be performed. I've recorded
a macro using a built in Excel function thus:

Cell D2 is the active cell and I enter the formula =Weeknum(a2) which Excel
records as

ActiveCell.FormulaR1C1 = "=WEEKNUM(RC[-3])"

But this will only work if the cell to be referenced is 3 colums to the left
of the cell that holds the formula. I want to use the function in any cell
and perform it's calculation on any other cell i.e. I wnat to use my function
like any other Excel function.

How can I do this please?


Tim Williams

Refer to selected cell in custom function
 

Place this in a standard module

function AddUp(rng as range, rng2 as range) as variant
on error goto haveError

AddUp=rng.value + rng2.value
exit function

haveError:
AddUp="Error!"


end function

In A1 on a worksheet in the same workbook enter

=AddUp(B1,C1)

Tim.




"Snowsride" wrote in message
...
When I use an Excel function I type =FunctionName( I then move the

active
cell to the one on which I want to perform the calculation and then type )
and hit enter.

I want to create a custom function but can't figure out how to include a
reference to the cell on which the formula is to be performed. I've

recorded
a macro using a built in Excel function thus:

Cell D2 is the active cell and I enter the formula =Weeknum(a2) which

Excel
records as

ActiveCell.FormulaR1C1 = "=WEEKNUM(RC[-3])"

But this will only work if the cell to be referenced is 3 colums to the

left
of the cell that holds the formula. I want to use the function in any

cell
and perform it's calculation on any other cell i.e. I wnat to use my

function
like any other Excel function.

How can I do this please?




Tim Williams

Refer to selected cell in custom function
 
Note that if you use application.caller in your function to address the
offset cell it may not recalculate if the value in the offset cell changes.
I think Excel only recalculates a formula when one of the inputs changes -
where "input" is actually a passed parameter and not one "internal" to the
function.

Tim.

"Juan Pablo González" wrote in message
...
Use Application.Caller to return the range where the function is being
called from.

--
Regards

Juan Pablo González

"Snowsride" wrote in message
...
When I use an Excel function I type =FunctionName( I then move the

active
cell to the one on which I want to perform the calculation and then

type )
and hit enter.

I want to create a custom function but can't figure out how to include a
reference to the cell on which the formula is to be performed. I've

recorded
a macro using a built in Excel function thus:

Cell D2 is the active cell and I enter the formula =Weeknum(a2) which

Excel
records as

ActiveCell.FormulaR1C1 = "=WEEKNUM(RC[-3])"




Snowsride

Refer to selected cell in custom function
 
Thanks to K.Dale and Tim Williams - just the trick.

Regards

"Tim Williams" wrote:


Place this in a standard module

function AddUp(rng as range, rng2 as range) as variant
on error goto haveError

AddUp=rng.value + rng2.value
exit function

haveError:
AddUp="Error!"


end function

In A1 on a worksheet in the same workbook enter

=AddUp(B1,C1)

Tim.




"Snowsride" wrote in message
...
When I use an Excel function I type =FunctionName( I then move the

active
cell to the one on which I want to perform the calculation and then type )
and hit enter.

I want to create a custom function but can't figure out how to include a
reference to the cell on which the formula is to be performed. I've

recorded
a macro using a built in Excel function thus:

Cell D2 is the active cell and I enter the formula =Weeknum(a2) which

Excel
records as

ActiveCell.FormulaR1C1 = "=WEEKNUM(RC[-3])"

But this will only work if the cell to be referenced is 3 colums to the

left
of the cell that holds the formula. I want to use the function in any

cell
and perform it's calculation on any other cell i.e. I wnat to use my

function
like any other Excel function.

How can I do this please?






All times are GMT +1. The time now is 11:47 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com