There's no Target passed to the worksheet_calculate() event.
You can have it run each time that that worksheet recalculates:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Application.Run "Calculate_Stamp_Duty_PROPERTY_3"
Application.EnableEvents = True
End Sub
Or you could try to keep track of the previous value:
Private Sub Worksheet_Calculate()
Static OldValD9 as Variant
if me.range("D9").value = OldVald9 then
'do nothing, it didn't change
else
oldvald9 = me.range("d9").value
'then go off and do what you want
Application.EnableEvents = False
Application.Run "Calculate_Stamp_Duty_PROPERTY_3"
Application.EnableEvents = True
end if
End Sub
Brettjg wrote:
Well, we are getting there. With the following code the macro does get
triggered when I change the other workbook, but it gets a run time error of
"Object required (Error 424)"
Private Sub Worksheet_Calculate()
If Not Intersect(Target, Range("D9")) Is Nothing Then
Application.EnableEvents = False
Application.Run "Calculate_Stamp_Duty_PROPERTY_3"
Application.EnableEvents = True
End If
End Sub
Not being completely lazy, I did check the Help, but I don't understand it
(as I don't with justabout all VB help!). This is where I'm a bit dopey, you
see. I didn't even realise you could have two Private Subs in the one
worksheet. The other question is: I need to actually have 4 of these macros
in the sheet. I tried
Private Sub Worksheet_Calculate_1()
Private Sub Worksheet_Calculate_2()
etc but obviously the name of the PS is important because they didn't
trigger any action.
Thanks for your help so far, I think we've (you've?) nearly done it.
Regards Brett.
--
Dave Peterson