Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 81
Default how to call a sub that has arguments

Hi, I'm trying to call this procedure located in the MyCode module:
Sub Worksheet_Change(ByVal Target As Range)
code here
End Sub
(the above code works properly when it is in the Sheet1 (Budget) module)

From this procedure which is in the Sheet1 (Budget) module. How do I
write the code below? The best I can come up with is:
Sub YearChange()
Call MyCode.Worksheet_Change
End Sub

It does not work, I don't know how to handle the argument within the
parenthesis.

Also, I don't think I need to include the MyCode as part of the path,
but a similar Call procedure I've done without arguments only works if I
include this in the path. What might I have done wrong.

I would appreciate anyone's help with writing the bottom code correctly.

Gratefully,
Harold
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,565
Default how to call a sub that has arguments

The title line of the code:

Sub Worksheet_Change(ByVal Target As Range)

identifies it as worksheet event code. In this case, it is code that
executes when there is a change on the worksheet. Correctly written it
would be:

Private Sub Worksheet_Change(ByVal Target As Range).

That said, if you want the code to execute without making a change to the
worksheet, then the easy way is to change the title line to some other name
like:

Sub myChangedSub()
'Code here
End Sub

Then you can put it in the public code module and call it like:

Sub YearChange()
Call myChangedSub
End Sub

Or just run it instead of calling it. But you might have to change some of
the code to make it work in the public module for the specific sheet that
you want the data to apply to.




"Harold Good" wrote in message
...
Hi, I'm trying to call this procedure located in the MyCode module:
Sub Worksheet_Change(ByVal Target As Range)
code here
End Sub
(the above code works properly when it is in the Sheet1 (Budget) module)

From this procedure which is in the Sheet1 (Budget) module. How do I write
the code below? The best I can come up with is:
Sub YearChange()
Call MyCode.Worksheet_Change
End Sub

It does not work, I don't know how to handle the argument within the
parenthesis.

Also, I don't think I need to include the MyCode as part of the path, but
a similar Call procedure I've done without arguments only works if I
include this in the path. What might I have done wrong.

I would appreciate anyone's help with writing the bottom code correctly.

Gratefully,
Harold



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default how to call a sub that has arguments

MyCode is the codename of the worksheet, right?

Remove the word Private from that worksheet_change procedure line:

I had this in the myCode worksheet module:

Option Explicit
Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Address
End Sub

Then I called that procedure using:

Option Explicit
Sub testme()
Call myCode.Worksheet_Change(Target:=myCode.Range("a1") )
End Sub


This makes it look like A1 on that sheet changing--and making the
Worksheet_change fire.



Harold Good wrote:

Hi, I'm trying to call this procedure located in the MyCode module:
Sub Worksheet_Change(ByVal Target As Range)
code here
End Sub
(the above code works properly when it is in the Sheet1 (Budget) module)

From this procedure which is in the Sheet1 (Budget) module. How do I
write the code below? The best I can come up with is:
Sub YearChange()
Call MyCode.Worksheet_Change
End Sub

It does not work, I don't know how to handle the argument within the
parenthesis.

Also, I don't think I need to include the MyCode as part of the path,
but a similar Call procedure I've done without arguments only works if I
include this in the path. What might I have done wrong.

I would appreciate anyone's help with writing the bottom code correctly.

Gratefully,
Harold


--

Dave Peterson
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default how to call a sub that has arguments

You could also use this:

Option Explicit
Sub testme()
Application.Run "'" & ThisWorkbook.Name _
& "'!myCode.Worksheet_Change", myCode.Range("a1")
End Sub

And keep the private in the procedure statement:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Address
End Sub


=========
You can determine the code name of the sheet by:
Go into the VBE
Show the project explorer (hit ctrl-r)
Select your workbook's project
Select the worksheet that owns the code
Hit F4 to see the properties.

The Codename is the (name) property in that list of properties. The Name
property (without the ()'s) is the name that the user sees on the sheet tab in
excel.



Harold Good wrote:

Hi, I'm trying to call this procedure located in the MyCode module:
Sub Worksheet_Change(ByVal Target As Range)
code here
End Sub
(the above code works properly when it is in the Sheet1 (Budget) module)

From this procedure which is in the Sheet1 (Budget) module. How do I
write the code below? The best I can come up with is:
Sub YearChange()
Call MyCode.Worksheet_Change
End Sub

It does not work, I don't know how to handle the argument within the
parenthesis.

Also, I don't think I need to include the MyCode as part of the path,
but a similar Call procedure I've done without arguments only works if I
include this in the path. What might I have done wrong.

I would appreciate anyone's help with writing the bottom code correctly.

Gratefully,
Harold


--

Dave Peterson
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
Re : Excel To Call Sub and Assign Arguments [email protected] Excel Programming 6 September 11th 08 01:36 AM
call a macro with arguments in a Command Button Jeff Excel Programming 1 November 9th 06 07:35 PM
arguments gemini0662 Excel Discussion (Misc queries) 9 July 13th 06 03:48 PM
Call Center Management: How to calculate 'cost per call' Denniso6 Excel Discussion (Misc queries) 2 June 25th 06 05:01 PM
call a sub with arguments from Worksheet_FollowHyperlink event Tom Ogilvy Excel Programming 5 August 28th 03 10:58 PM


All times are GMT +1. The time now is 07:28 AM.

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

About Us

"It's about Microsoft Excel"