ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Activation inheritance (https://www.excelbanter.com/excel-programming/382373-activation-inheritance.html)

Mats Samson

Activation inheritance
 
I'm a little bit confused that the following does not seem to be valid.
Copy from another active Workbook and
Workbooks("A").Worksheets("B"). Range("Goal"). Activate
Paste....
If Worksheets("A") was the active sheet before switching to another WB then
the code returns to the A-sheet and give me the error 1004 as it cannot find
the
range "Goal" in this sheet.

Is it really necessary to acivate each part individually?
Workbooks("A").Activate
Worksheets("B").Activate
Range("Goal"). Activate

Why? It doesn't seem to be logic!

NickHK

Activation inheritance
 
Mats,
Yes, you cannot .Activate/.Select an object unless its .Parent is active. So
you need to step through like that.
Or
Application.Goto Workbooks(2).Worksheets(1).Range("A2")

However, for most of Excel's functionality, you do not need to .activate the
object(s) in order to use them. Depends what you are doing.

NickHK

"Mats Samson" wrote in message
...
I'm a little bit confused that the following does not seem to be valid.
Copy from another active Workbook and
Workbooks("A").Worksheets("B"). Range("Goal"). Activate
Paste....
If Worksheets("A") was the active sheet before switching to another WB

then
the code returns to the A-sheet and give me the error 1004 as it cannot

find
the
range "Goal" in this sheet.

Is it really necessary to acivate each part individually?
Workbooks("A").Activate
Worksheets("B").Activate
Range("Goal"). Activate

Why? It doesn't seem to be logic!




Bob Phillips

Activation inheritance
 
You need to activate separately, not all the way but sheet and range

Workbooks("A").Worksheets("B").Activate
Range("Goal"). Activate

I agree with you, but that is how it is.

--
HTH

Bob Phillips

(there's no email, no snail mail, but somewhere should be gmail in my addy)

"Mats Samson" wrote in message
...
I'm a little bit confused that the following does not seem to be valid.
Copy from another active Workbook and
Workbooks("A").Worksheets("B"). Range("Goal"). Activate
Paste....
If Worksheets("A") was the active sheet before switching to another WB

then
the code returns to the A-sheet and give me the error 1004 as it cannot

find
the
range "Goal" in this sheet.

Is it really necessary to acivate each part individually?
Workbooks("A").Activate
Worksheets("B").Activate
Range("Goal"). Activate

Why? It doesn't seem to be logic!




Peter T

Activation inheritance
 
Nick & Bob have explained about Activate. It's not clear what you are trying
to do other than you mention Copy/Paste. For that you don't need select or
activate -

rngSource.Copy rngDest

Set the two ranges as required, qualifying them back to the appropriate
workbook and sheet.

If the two ranges are not same size at least one should refer to a single
cell.

Regards,
Peter T

"Mats Samson" wrote in message
...
I'm a little bit confused that the following does not seem to be valid.
Copy from another active Workbook and
Workbooks("A").Worksheets("B"). Range("Goal"). Activate
Paste....
If Worksheets("A") was the active sheet before switching to another WB

then
the code returns to the A-sheet and give me the error 1004 as it cannot

find
the
range "Goal" in this sheet.

Is it really necessary to acivate each part individually?
Workbooks("A").Activate
Worksheets("B").Activate
Range("Goal"). Activate

Why? It doesn't seem to be logic!




Mats Samson

Activation inheritance
 
Thank you for quick response, it's alright!
To Peter: The copy and paste ranges are not important in my case, that works
fine.
The whole story is whether the parent workbook and worksheet also inherits
the activation, i.e. also become active when I select a range in the
worksheet.
Obviously they don't.

"Peter T" wrote:

Nick & Bob have explained about Activate. It's not clear what you are trying
to do other than you mention Copy/Paste. For that you don't need select or
activate -

rngSource.Copy rngDest

Set the two ranges as required, qualifying them back to the appropriate
workbook and sheet.

If the two ranges are not same size at least one should refer to a single
cell.

Regards,
Peter T

"Mats Samson" wrote in message
...
I'm a little bit confused that the following does not seem to be valid.
Copy from another active Workbook and
Workbooks("A").Worksheets("B"). Range("Goal"). Activate
Paste....
If Worksheets("A") was the active sheet before switching to another WB

then
the code returns to the A-sheet and give me the error 1004 as it cannot

find
the
range "Goal" in this sheet.

Is it really necessary to acivate each part individually?
Workbooks("A").Activate
Worksheets("B").Activate
Range("Goal"). Activate

Why? It doesn't seem to be logic!






All times are GMT +1. The time now is 05:54 PM.

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