View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Norman Jones[_2_] Norman Jones[_2_] is offline
external usenet poster
 
Posts: 421
Default trigger worksheet activate event in another worksheet

Hi Raj,

Two possible solutions present themselves:

(1)

In Sheet2's code module. try::

'=========
Option Explicit

Private Sub Worksheet_Activate()
Application.Run "Sheet1.Worksheet_Activate"
End Sub
'<<=========


(2) An alternative solution would be to move the processing code into a
procedure housed in a standard module; the procedure would then be called
from the activate events in each of the two sheets.

Thus, schematically:

Standard module

'=========
Option Explicit

Public Sub mySub()

'\\ Your pivot and processsing code

End Sub
'<<=========

In Sheet1:

'=========
Option Explicit

Private Sub Worksheet_Activate()
Call mySub
End Sub
'<<=========

In Sheet2:

'=========
Option Explicit

Private Sub Worksheet_Activate()
Call mySub
End Sub
'<<=========

If processing code requires knowledge of activated sheet, you can pass this
information as a parameter, i.e:

Standard module

'=========
Option Explicit

Public Sub mySub(sSheetName as string)
Dim SH As WorkSheet

Set SH = ThisWorkbook,Sheets(sSheetName)
'\\ Your pivot and processsing code

End Sub
'<<=========

In Sheet1:

'=========
Option Explicit

Private Sub Worksheet_Activate()
Call mySub (Me.Name)
End Sub
'<<=========

In Sheet2:

'=========
Option Explicit

Private Sub Worksheet_Activate()
Call mySub (Me.Name)
End Sub
'<<=========




---
Regards.
Norman


"Raj" wrote in message
...
Hi,

I have some code written in the worksheet activate event of
Worksheet1. This creates a pivot table in Worksheet2 and writes some
other data to Worksheet1 based on this pivot table. I want the same
thing to happen when Worksheet2 is activated ie the code in Worksheet
activate event Iin Worksheet 1 should run, create the pivot table in
Worksheet2 and then write the data in Worksheet 1.

Any ideas on how to do this? Specifically, can I use Worksheet2's
activate event to activate Worksheet 1 whose code should then get
triggered? Will it result in an infinite loop. In which case, how do I
break the loop.

Thanks in advance for the help.

Regards,
Raj