ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Why wouldn't calling the Activate sub for a sheet automatically call that sheet's Worksheet_Activate() sub? (https://www.excelbanter.com/excel-programming/274722-why-wouldnt-calling-activate-sub-sheet-automatically-call-sheets-worksheet_activate-sub.html)

Scott Lyon

Why wouldn't calling the Activate sub for a sheet automatically call that sheet's Worksheet_Activate() sub?
 
I'm encountering the strangest thing, and I'm trying to figure out why it's
doing what it's doing.


Basically, my application is a VBA app, written in Excel 2002. In the
"ThisWorkbook.Workbook_Open" sub, there is a line that activates the first
tab. The line of code looks like this:

shtStart.Activate

Where shtStart is the name of the worksheet in question.


Within that worksheet's VBA code, there is the WorkSheet_Activate() sub, and
code within it.


But it seems that when the shtStart.Activate in the Workbook_Open sub is
called, it's not then (automatically) calling the WorkSheet_Activate() in
shtStart. I've even put break-points in the WorkSheet_Activate() sub, and
then ran the Workbook_Open sub (one line at a time), and still not hitting
the WorkSheet_Activate() sub.


What am I missing? Any ideas/suggestions?


Thanks!
-Scott



Tom Ogilvy

Why wouldn't calling the Activate sub for a sheet automatically call that sheet's Worksheet_Activate() sub?
 
Is shtStart already the activesheet because it was the activesheet when you
last saved the workbook. Unless another sheet is active and you activate
shtStart, the activate event does not fire.

--
Regards,
Tom Ogilvy

"Scott Lyon" <scott.lyonNOSPAM_at__NOSPAMrapistan.comNOSPAM wrote in
message ...
I'm encountering the strangest thing, and I'm trying to figure out why

it's
doing what it's doing.


Basically, my application is a VBA app, written in Excel 2002. In the
"ThisWorkbook.Workbook_Open" sub, there is a line that activates the first
tab. The line of code looks like this:

shtStart.Activate

Where shtStart is the name of the worksheet in question.


Within that worksheet's VBA code, there is the WorkSheet_Activate() sub,

and
code within it.


But it seems that when the shtStart.Activate in the Workbook_Open sub is
called, it's not then (automatically) calling the WorkSheet_Activate() in
shtStart. I've even put break-points in the WorkSheet_Activate() sub, and
then ran the Workbook_Open sub (one line at a time), and still not hitting
the WorkSheet_Activate() sub.


What am I missing? Any ideas/suggestions?


Thanks!
-Scott





pancho[_14_]

Why wouldn't calling the Activate sub for a sheet automatically call that sheet's Worksheet_Activate() sub?
 
because the event will be triggered only when there are a
change on the active sheet(If the active sheet is shtStart
there will not execute the event), you need to use a code
like this:


If ActiveSheet.Name = "shtStart" Then
Call Workbook_SheetActivate(shtStart)
Else
shtStart.Activate
End If



-----Original Message-----
I'm encountering the strangest thing, and I'm trying to

figure out why it's
doing what it's doing.


Basically, my application is a VBA app, written in Excel

2002. In the
"ThisWorkbook.Workbook_Open" sub, there is a line that

activates the first
tab. The line of code looks like this:

shtStart.Activate

Where shtStart is the name of the worksheet in question.


Within that worksheet's VBA code, there is the

WorkSheet_Activate() sub, and
code within it.


But it seems that when the shtStart.Activate in the

Workbook_Open sub is
called, it's not then (automatically) calling the

WorkSheet_Activate() in
shtStart. I've even put break-points in the

WorkSheet_Activate() sub, and
then ran the Workbook_Open sub (one line at a time), and

still not hitting
the WorkSheet_Activate() sub.


What am I missing? Any ideas/suggestions?


Thanks!
-Scott


.


Scott Lyon

Why wouldn't calling the Activate sub for a sheet automatically call that sheet's Worksheet_Activate() sub?
 
Ahhh, that worked. Thanks guys!

-Scott

"pancho" wrote in message
...
because the event will be triggered only when there are a
change on the active sheet(If the active sheet is shtStart
there will not execute the event), you need to use a code
like this:


If ActiveSheet.Name = "shtStart" Then
Call Workbook_SheetActivate(shtStart)
Else
shtStart.Activate
End If



-----Original Message-----
I'm encountering the strangest thing, and I'm trying to

figure out why it's
doing what it's doing.


Basically, my application is a VBA app, written in Excel

2002. In the
"ThisWorkbook.Workbook_Open" sub, there is a line that

activates the first
tab. The line of code looks like this:

shtStart.Activate

Where shtStart is the name of the worksheet in question.


Within that worksheet's VBA code, there is the

WorkSheet_Activate() sub, and
code within it.


But it seems that when the shtStart.Activate in the

Workbook_Open sub is
called, it's not then (automatically) calling the

WorkSheet_Activate() in
shtStart. I've even put break-points in the

WorkSheet_Activate() sub, and
then ran the Workbook_Open sub (one line at a time), and

still not hitting
the WorkSheet_Activate() sub.


What am I missing? Any ideas/suggestions?


Thanks!
-Scott


.





All times are GMT +1. The time now is 07:32 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com