Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 25
Default Add-in Question (common code)

I have 10 Workbooks that all have identical Modules and VB code functions.

I want to centralize that code in one place so that fixes don't have to be
made 10 times. I created an Add-in with a Module containing all of the
common code. The problem now is that this common code refences the worksheet
cells (which don't exist in the Addin) as ThisWorkbook. I want it to
reference what ever workbook was opened. How do I do this?

So for example the code in the Addin Module1 has:

Set wsh = ThisWorkbook.Sheets("DW")
ThisWorkbook.Sheets("DW").Activate
'Assumes data starts in column D
Set rRng = wsh.Range("D11", "AY11")

On Error GoTo Err_Handle

sContractCode = Worksheets("DW").Range("D5").Value
dStartDate = Worksheets("DW").Range("D7").Value

etc.,etc...


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default Add-in Question (common code)

ThisWorkbook refers to the workbook that contains the code, your addin

You will need something that's common to all workbooks that's applicable to
the code in your addin. Let's assume it's any workbook that contains a sheet
named "DW" and the code will only be called in the ActiveWorkbook


On Error Resume Next
Set wsh = Nothing ' if there's any possibility wsh is already ref'd
Set wsh = ActiveWorkbook.WorkSheets("DW") ' assuming it's a worksheet
On Error GoTo Err_Handle

If wsh is nothing then
' msgbox "Sheet DW does not exist in activeworkbook
Exit Sub
End if

wsh. Activate ' only to need to present to user

' etc

Regards,
Peter T


"chemicals" wrote in message
...
I have 10 Workbooks that all have identical Modules and VB code functions.

I want to centralize that code in one place so that fixes don't have to be
made 10 times. I created an Add-in with a Module containing all of the
common code. The problem now is that this common code refences the
worksheet
cells (which don't exist in the Addin) as ThisWorkbook. I want it to
reference what ever workbook was opened. How do I do this?

So for example the code in the Addin Module1 has:

Set wsh = ThisWorkbook.Sheets("DW")
ThisWorkbook.Sheets("DW").Activate
'Assumes data starts in column D
Set rRng = wsh.Range("D11", "AY11")

On Error GoTo Err_Handle

sContractCode = Worksheets("DW").Range("D5").Value
dStartDate = Worksheets("DW").Range("D7").Value

etc.,etc...




  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 25
Default Add-in Question (common code)

Thanks. I knew that "ThisWorkbook" was referring to the Add-in wb but I also
assumed that the ActiveWorkbook would be the Add-in as well.... I changed
ThisWorkbook to ActiveWorkbook everywhere in the Add-in module and now it
works great...



"Peter T" wrote:

ThisWorkbook refers to the workbook that contains the code, your addin

You will need something that's common to all workbooks that's applicable to
the code in your addin. Let's assume it's any workbook that contains a sheet
named "DW" and the code will only be called in the ActiveWorkbook


On Error Resume Next
Set wsh = Nothing ' if there's any possibility wsh is already ref'd
Set wsh = ActiveWorkbook.WorkSheets("DW") ' assuming it's a worksheet
On Error GoTo Err_Handle

If wsh is nothing then
' msgbox "Sheet DW does not exist in activeworkbook
Exit Sub
End if

wsh. Activate ' only to need to present to user

' etc

Regards,
Peter T


"chemicals" wrote in message
...
I have 10 Workbooks that all have identical Modules and VB code functions.

I want to centralize that code in one place so that fixes don't have to be
made 10 times. I created an Add-in with a Module containing all of the
common code. The problem now is that this common code refences the
worksheet
cells (which don't exist in the Addin) as ThisWorkbook. I want it to
reference what ever workbook was opened. How do I do this?

So for example the code in the Addin Module1 has:

Set wsh = ThisWorkbook.Sheets("DW")
ThisWorkbook.Sheets("DW").Activate
'Assumes data starts in column D
Set rRng = wsh.Range("D11", "AY11")

On Error GoTo Err_Handle

sContractCode = Worksheets("DW").Range("D5").Value
dStartDate = Worksheets("DW").Range("D7").Value

etc.,etc...





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
Common footer but not common margins please -(Page 1 of 2) etc RajenRajput1 Excel Discussion (Misc queries) 9 August 26th 08 06:56 PM
Using common VBA code for a series of Woorkbooks. Martin Sørerensen Excel Programming 4 March 2nd 06 11:06 AM
Perform code on all (closed) workbooks scattered across sub-folders of common parent folder ikr[_2_] Excel Programming 6 February 21st 06 08:08 AM
If I have two reoated data-sets and a common code, how can I get i helixed Excel Worksheet Functions 1 January 18th 06 03:55 AM
dynamic range reference and use of common code clui[_4_] Excel Programming 2 December 2nd 03 05:45 PM


All times are GMT +1. The time now is 05:10 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"