ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Excel 2003 - User def. function (https://www.excelbanter.com/excel-programming/356439-excel-2003-user-def-function.html)

KSO

Excel 2003 - User def. function
 
I have defined a function like

Function GetSheetName() as String
Application.Volatile ' I tried this but no difference
GetSheetName=ActiveSheet.Name
End func

and when I use it in a cell on a workheet - then
sometimes it works and sometimes it won't - why ?

KS, Denmark




Niek Otten

Excel 2003 - User def. function
 
That is not a safe way to get the name of the sheet where the formula is; some other sheet might be active.

Use

Function SheetName() As String
SheetName = Application.Caller.SheetName
End Function


--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
I have defined a function like

Function GetSheetName() as String
Application.Volatile ' I tried this but no difference
GetSheetName=ActiveSheet.Name
End func

and when I use it in a cell on a workheet - then
sometimes it works and sometimes it won't - why ?

KS, Denmark






KSO

Excel 2003 - User def. function
 
Hi Niek

It won't work either - I get runtime error 424

But I can see it's NOT a safe metode.

KS, Denmark

"Niek Otten" wrote:

That is not a safe way to get the name of the sheet where the formula is; some other sheet might be active.

Use

Function SheetName() As String
SheetName = Application.Caller.SheetName
End Function


--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
I have defined a function like

Function GetSheetName() as String
Application.Volatile ' I tried this but no difference
GetSheetName=ActiveSheet.Name
End func

and when I use it in a cell on a workheet - then
sometimes it works and sometimes it won't - why ?

KS, Denmark







Niek Otten

Excel 2003 - User def. function
 
Do you put the code in a General Module? It should not be in a Sheet module. I didn't get the error.

--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
Hi Niek

It won't work either - I get runtime error 424

But I can see it's NOT a safe metode.

KS, Denmark

"Niek Otten" wrote:

That is not a safe way to get the name of the sheet where the formula is; some other sheet might be active.

Use

Function SheetName() As String
SheetName = Application.Caller.SheetName
End Function


--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
I have defined a function like

Function GetSheetName() as String
Application.Volatile ' I tried this but no difference
GetSheetName=ActiveSheet.Name
End func

and when I use it in a cell on a workheet - then
sometimes it works and sometimes it won't - why ?

KS, Denmark









KSO

Excel 2003 - User def. function
 
I have to use the function on 10 defferent sheets so I placed the code in a
added module - I think that's what you'r poiting out - but still I get run
time error 424

"Niek Otten" wrote:

Do you put the code in a General Module? It should not be in a Sheet module. I didn't get the error.

--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
Hi Niek

It won't work either - I get runtime error 424

But I can see it's NOT a safe metode.

KS, Denmark

"Niek Otten" wrote:

That is not a safe way to get the name of the sheet where the formula is; some other sheet might be active.

Use

Function SheetName() As String
SheetName = Application.Caller.SheetName
End Function


--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
I have defined a function like

Function GetSheetName() as String
Application.Volatile ' I tried this but no difference
GetSheetName=ActiveSheet.Name
End func

and when I use it in a cell on a workheet - then
sometimes it works and sometimes it won't - why ?

KS, Denmark










Niek Otten

Excel 2003 - User def. function
 
Sorry for that; SheetName turned out to be already in Laurent Longre's Morefunc add-in and that one was called in my case. Mine
uses wrong syntax.

--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
I have to use the function on 10 defferent sheets so I placed the code in a
added module - I think that's what you'r poiting out - but still I get run
time error 424

"Niek Otten" wrote:

Do you put the code in a General Module? It should not be in a Sheet module. I didn't get the error.

--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
Hi Niek

It won't work either - I get runtime error 424

But I can see it's NOT a safe metode.

KS, Denmark

"Niek Otten" wrote:

That is not a safe way to get the name of the sheet where the formula is; some other sheet might be active.

Use

Function SheetName() As String
SheetName = Application.Caller.SheetName
End Function


--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
I have defined a function like

Function GetSheetName() as String
Application.Volatile ' I tried this but no difference
GetSheetName=ActiveSheet.Name
End func

and when I use it in a cell on a workheet - then
sometimes it works and sometimes it won't - why ?

KS, Denmark












KSO

Excel 2003 - User def. function
 
I can now see the problem to know witch sheet the functions is called from,
but Application.Caller don't give me some usefull information here - then it
can't be done without installing this add-in you'r talking about ....

Any other idias ?

KS, Denmark

"Niek Otten" wrote:

Sorry for that; SheetName turned out to be already in Laurent Longre's Morefunc add-in and that one was called in my case. Mine
uses wrong syntax.

--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
I have to use the function on 10 defferent sheets so I placed the code in a
added module - I think that's what you'r poiting out - but still I get run
time error 424

"Niek Otten" wrote:

Do you put the code in a General Module? It should not be in a Sheet module. I didn't get the error.

--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
Hi Niek

It won't work either - I get runtime error 424

But I can see it's NOT a safe metode.

KS, Denmark

"Niek Otten" wrote:

That is not a safe way to get the name of the sheet where the formula is; some other sheet might be active.

Use

Function SheetName() As String
SheetName = Application.Caller.SheetName
End Function


--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
I have defined a function like

Function GetSheetName() as String
Application.Volatile ' I tried this but no difference
GetSheetName=ActiveSheet.Name
End func

and when I use it in a cell on a workheet - then
sometimes it works and sometimes it won't - why ?

KS, Denmark













Niek Otten

Excel 2003 - User def. function
 
This one seems to work. It needs a cell on that sheet as argument

Function test(a As Range)
Application.Volatile
test = Application.Caller.Worksheet.Name
End Function

But you may find Morefunc useful anyway; have a look!

http://xcell05.free.fr/

--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
I can now see the problem to know witch sheet the functions is called from,
but Application.Caller don't give me some usefull information here - then it
can't be done without installing this add-in you'r talking about ....

Any other idias ?

KS, Denmark

"Niek Otten" wrote:

Sorry for that; SheetName turned out to be already in Laurent Longre's Morefunc add-in and that one was called in my case. Mine
uses wrong syntax.

--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
I have to use the function on 10 defferent sheets so I placed the code in a
added module - I think that's what you'r poiting out - but still I get run
time error 424

"Niek Otten" wrote:

Do you put the code in a General Module? It should not be in a Sheet module. I didn't get the error.

--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
Hi Niek

It won't work either - I get runtime error 424

But I can see it's NOT a safe metode.

KS, Denmark

"Niek Otten" wrote:

That is not a safe way to get the name of the sheet where the formula is; some other sheet might be active.

Use

Function SheetName() As String
SheetName = Application.Caller.SheetName
End Function


--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
I have defined a function like

Function GetSheetName() as String
Application.Volatile ' I tried this but no difference
GetSheetName=ActiveSheet.Name
End func

and when I use it in a cell on a workheet - then
sometimes it works and sometimes it won't - why ?

KS, Denmark















Niek Otten

Excel 2003 - User def. function
 
Too early up for a Sunday. I'll get back to bed.
Of course you don't need the argument.

--
Kind regards,

Niek Otten

"Niek Otten" wrote in message ...
This one seems to work. It needs a cell on that sheet as argument

Function test(a As Range)
Application.Volatile
test = Application.Caller.Worksheet.Name
End Function

But you may find Morefunc useful anyway; have a look!

http://xcell05.free.fr/

--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
I can now see the problem to know witch sheet the functions is called from,
but Application.Caller don't give me some usefull information here - then it
can't be done without installing this add-in you'r talking about ....

Any other idias ?

KS, Denmark

"Niek Otten" wrote:

Sorry for that; SheetName turned out to be already in Laurent Longre's Morefunc add-in and that one was called in my case.
Mine
uses wrong syntax.

--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
I have to use the function on 10 defferent sheets so I placed the code in a
added module - I think that's what you'r poiting out - but still I get run
time error 424

"Niek Otten" wrote:

Do you put the code in a General Module? It should not be in a Sheet module. I didn't get the error.

--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
Hi Niek

It won't work either - I get runtime error 424

But I can see it's NOT a safe metode.

KS, Denmark

"Niek Otten" wrote:

That is not a safe way to get the name of the sheet where the formula is; some other sheet might be active.

Use

Function SheetName() As String
SheetName = Application.Caller.SheetName
End Function


--
Kind regards,

Niek Otten

"KSO" <keld DOT soerensen@os DOT dk wrote in message ...
I have defined a function like

Function GetSheetName() as String
Application.Volatile ' I tried this but no difference
GetSheetName=ActiveSheet.Name
End func

and when I use it in a cell on a workheet - then
sometimes it works and sometimes it won't - why ?

KS, Denmark


















All times are GMT +1. The time now is 12:16 AM.

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