Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,588
Default public property in one workbook, want to set value from another

Have you tried setting Application.Calculation to manual, making the changes and then setting it back to automatic?

This would not require a flag in the second workbook.

--
Tim Williams
Palo Alto, CA


"Mark VII" wrote in message ...
I have a utility program contained in one Excel workbook that opens and
modifies another workbook. I'd like the utility program to be able to set
the value of a variable in the second workbook.

To put this in context, when the utility program makes certain changes, it
fires the Worksheet Change event in the in the second workbook. This is
creating havoc with performance. I want to be able to add a logic branch to
the Worksheet Change sub to bypass its logic under these circumstances.

I've created a public property in the second workbook, but where I'm
stumbling is how to build the right object references so the utility program
can set the property. Any suggestions?

TIA...
Mark



  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4,391
Default public property in one workbook, want to set value from anothe

Mark,
What about toggling Application.EnableEvents=False/true ?

NickHK

"Mark VII" wrote in message
...
Have you tried setting Application.Calculation to manual, making the

changes and then setting it back to automatic?

Interestingly, I tried to do exactly that. Unfortunately, the Worksheet
Change event in the second workbook contains logic where I'm turning
calculation off, then on again as part of some special handling of user
updates. Consequently, calcuation starts out turned off by the utility
program, but the second workbook's Worksheet Change logic turns it back on

at
the end of the sub.

Mark



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,588
Default public property in one workbook, want to set value from anothe

.... or only setting calculation back to automatic if it was initally set that way?

In your worksheet_change event handler:

dim bAuto

If application.calculation = xlautomatic
bAuto= true
application .calculation = xlmanual
end if

'.....do stuff

'set back to auto only if required
if bAuto then application.calculation = xlautomatic



--
Tim Williams
Palo Alto, CA


"NickHK" wrote in message ...
Mark,
What about toggling Application.EnableEvents=False/true ?

NickHK

"Mark VII" wrote in message
...
Have you tried setting Application.Calculation to manual, making the

changes and then setting it back to automatic?

Interestingly, I tried to do exactly that. Unfortunately, the Worksheet
Change event in the second workbook contains logic where I'm turning
calculation off, then on again as part of some special handling of user
updates. Consequently, calcuation starts out turned off by the utility
program, but the second workbook's Worksheet Change logic turns it back on

at
the end of the sub.

Mark





  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,588
Default public property in one workbook, want to set value from anothe

The best way to do that might be to create a public sub in the workbook and call that to set the property.

dim b_setting as boolean

Public Sub MyValue(bValue as boolean)
b_setting = bValue
end sub

or add property Get/Let routines to the workbook code module.



--
Tim Williams
Palo Alto, CA


"Mark VII" wrote in message ...
Thanks for that suggestion. It helped a lot, but it would be nice to be able
to manipulate a property in one workbook from another workbook's code.

Any suggestions?

"Tim Williams" wrote:

.... or only setting calculation back to automatic if it was initally set that way?




  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,588
Default public property in one workbook, want to set value from anothe

A simple approach would be to define your variable in the "ThisWorkbook"
module:

Public s_Value As String

In the "controlling workbook:

Sub Tester()

Dim wb
Set wb = Application.Workbooks("Property1.xls")
wb.s_Value = "blah"
MsgBox wb.s_Value

End Sub

or show the code you have already.

Tim



"Mark VII" wrote in message
...
Hi Tim --

I've got the property GET and LET routines built in a class module of
workbook #2. Where I'm stumbling is the object references to manipulate
these
values from VBA that gets invoked in workbook #1.

Thanks,
Mark

The best way to do that might be to create a public sub in the workbook
and call that to set the property.




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
Workbook Highlighting property ChadF Excel Programming 2 October 9th 06 06:55 PM
Workbook Property or Method Gary''s Student Excel Programming 3 February 17th 06 03:11 PM
workbook.saved property Jan[_17_] Excel Programming 2 November 22nd 05 05:07 PM
Calling a Public Subroutine in a Different Workbook Raul Excel Programming 2 August 24th 05 04:27 AM
Workbook-level public variables Stefi Excel Programming 7 May 9th 05 03:58 PM


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