Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 51
Default user defined function which increase consecutively while passingbelow cells

I need help about a subject. I won't state my real problem here since it will take long time to you. But if I understand the below problem's solution, I guess I can solve my real problem.


I want to define my own function in excel. Let name of that function be "myfunc". Now, let use this function in a cell in a sheet. I want it return "1" in the initial cell. When I pass this function to below cell, then I want it return "2". As I pass it below I want return value increase 1 by 1. How can be defined such function in vba.


I will be very glad if you help me. Thanks a lot.
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 51
Default user defined function which increase consecutively while passingbelow cells

I wrote such a function:

Function myfunc()
a=ActiveCell.Row
myfunc=a
End Function


However, that does not work as I want. In active cell it works fine, but if I fetch the cell from it corner to below cell, it does not work. How can I do that? Thanks alot. That is important to me.

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,872
Default user defined function which increase consecutively while passing below cells

hi Oercim,

Am Tue, 5 Mar 2013 03:54:27 -0800 (PST) schrieb oercim:

However, that does not work as I want. In active cell it works fine, but if I fetch the cell from it corner to below cell, it does not work. How can I do that? Thanks alot. That is important to me.


look that there is a empty cell above and try the macro:

Function myfunc(Optional rngC As Range) As Long
If rngC Is Nothing Then Set rngC = Application.Caller
myfunc = rngC.Offset(-1, 0) + 1
End Function

Better way:
Write 1 in the selected cell and drag it down with pressed CTRL-Button


Regards
Claus Busch
--
Win XP PRof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 51
Default user defined function which increase consecutively while passingbelow cells

Hello Claus, that worked very well. I am very glad. Thanks for the help. I just want to learn ne last thing. I searched in google, but I couldn't understand "Caller" at your code. What is its function? What does it do?
  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,872
Default user defined function which increase consecutively while passing below cells

Hi Oercim,

Am Tue, 5 Mar 2013 04:55:29 -0800 (PST) schrieb oercim:

Hello Claus, that worked very well. I am very glad. Thanks for the help. I just want to learn ne last thing. I searched in google, but I couldn't understand "Caller" at your code. What is its function? What does it do?


the Application.Caller is the cell from which you call your function.

Regards
Claus Busch
--
Win XP PRof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2


  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 51
Default user defined function which increase consecutively while passingbelow cells

Thanks a lot Claus. That was very useful for me. Best wishes.
  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 51
Default user defined function which increase consecutively while passingbelow cells

5 Mart 2013 Salı 15:11:36 UTC+2 tarihinde oercim yazdı:
Thanks a lot Claus. That was very useful for me. Best wishes.


Hello Claus. I have one more problem with this function. I want initial value to be "1" whatever the above of the initial value when the optional is nothing. Thanks a lot again.
  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,872
Default user defined function which increase consecutively while passing below cells

Hi Oercim,

Am Wed, 6 Mar 2013 23:01:37 -0800 (PST) schrieb oercim:

Hello Claus. I have one more problem with this function. I want initial value to be "1" whatever the above of the initial value when the optional is nothing. Thanks a lot again.


try:

Function myfunc(Optional rngC As Range) As Long
If rngC Is Nothing Then Set rngC = Application.Caller

myfunc = IIf(rngC.Offset(-1, 0).Formula Like "=myf*", _
rngC.Offset(-1, 0) + 1, 1)

End Function


Regards
Claus Busch
--
Win XP PRof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2
  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 51
Default user defined function which increase consecutively while passingbelow cells

Hi, Claus,

I am very greatful for your help. I learned a lot of things from this forum.. Thank you very much. I know, I said many times "this is last". But I have one more problem.

I want to modify this function a little bit. Let my function returns always "1" as I drag the function down. But while doing this, I want to store above's function's values as variable; let say this variable's name is "x". I mean, the function will return always 1 as I drag the function down, but x will increase consecutively (like 1,2,3,...). But x will not be dispayed in the sheet. It will just stored, and assigned to draged cell. This is realy the last one.

I will be very glad. Thanks a lot again and again.
  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,872
Default user defined function which increase consecutively while passing below cells

Hi Oercim,

Am Thu, 7 Mar 2013 05:02:05 -0800 (PST) schrieb oercim:

I want to modify this function a little bit. Let my function returns always "1" as I drag the function down. But while doing this, I want to store above's function's values as variable; let say this variable's name is "x". I mean, the function will return always 1 as I drag the function down, but x will increase consecutively (like 1,2,3,...). But x will not be dispayed in the sheet. It will just stored, and assigned to draged cell. This is realy the last one.


why do you need this function? I am asking that because I am searching a
new and better way to do it.


Regards
Claus Busch
--
Win XP PRof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2


  #11   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 51
Default user defined function which increase consecutively while passingbelow cells

Hi Claus,
My real problem is that, I want to move multiple columns into one column. In google I found such a trick:

=INDEX($A$2:$D$25,MOD(ROWS(F$2:F2)-1,ROWS($A$2:$D$25))+1,INT((ROWS(F$2:F2)-1)/ROWS($A$2:$D$25))+1)

which makes columns of table -data inserted in A2:D25- moves to one column which starts from F2.
I want to make a user defined function which makes the same job.

I thought that if I find a solution to the initial problem, I would solve this problem. But I couldn't solve. However, your solutions to the initial problem are very useful for me.
I am very greautful for the help. Thanks a lot.
  #12   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,872
Default user defined function which increase consecutively while passing below cells

Hi Oercim,

Am Fri, 8 Mar 2013 02:10:35 -0800 (PST) schrieb oercim:

which makes columns of table -data inserted in A2:D25- moves to one column which starts from F2.
I want to make a user defined function which makes the same job.


in F2 try:
=INDEX(A:D,(ROW()-2)/4+2,MOD(ROW()-2,4)+1)
and copy down


Regards
Claus Busch
--
Win XP PRof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2
  #13   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 51
Default user defined function which increase consecutively while passingbelow cells

Hi Claus,

I wrote the function. I am very greatful for your help. Thank you very much for giving your time. This was very helpful for me. The function is like below.The function has one requirement: It has to be initially stated in the first row.

Function myfunc(x As Range, Optional rowno As Range)
If rowno Is Nothing Then Set rowno = Application.Caller
rx = x.Rows.Count
a1 = (rowno.Row - 1) Mod (rx + 1)
a2 = Int((rowno.Row - 1) / rx) + 1
myfunc = Application.WorksheetFunction.Index(x, a1, a2)
End Function


Again thanks a lot.
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Cells w/ user defined function do not auto update John Excel Worksheet Functions 2 September 14th 08 07:06 PM
Making Changes to Cells from a user defined function Elliot[_3_] Excel Programming 3 September 29th 06 04:39 AM
Excel - User Defined Function Error: This function takes no argume BruceInCalgary Excel Programming 3 August 23rd 06 08:53 PM
Need to open the Function Arguments window from VBA for a user defined function. [email protected] Excel Programming 0 June 20th 06 03:53 PM
Obtaining column/row numbers of cells in user defined function GreenInIowa Excel Programming 6 October 19th 05 09:20 PM


All times are GMT +1. The time now is 08:29 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"