PDA

View Full Version : VBA to Set a sheetname as a Variable and call from another workBook



simora
08-28-2008, 04:45 AM
I need to set the ActiveSheet.Name in BK1 as a variable to call it from another workbook BK2

Specifically:

I'm trying to open BK2 sheet X automatically with a macro if I am in
BK1 sheet X

I want to match the new sheet number in BK2 to the current sheet number in BK1 that is the current ActiveSheet.
So If I am in BK1 Sheet3 I want to post data to BK2 Sheet 3 etc..etc
So If I am in BK1 Sheet5 I want to post data to BK2 Sheet 5 etc..etc

I am not looping through these sheets, I am posting to individual sheets one at a time as I get to them over a period of time.
Any sample code appreciated.

Thanks

mikerickson
08-28-2008, 05:16 AM
Workbooks("BK2.xls").Sheets(ActiveSheet.Index).Range("A1") = "data"

simora
08-28-2008, 06:59 AM
mikerickson:

Can you please explain your reply. I dont understand what your code
Range("A1") = "data"
is doing, or trying to do.

Seems like I need something along the lines of

Dim strSheetName As String
strSheetName = ActiveSheet.Name

when I am in BK1

But I cant get the sheet name passed to BK2 when I open it.

After I activate BK2 I get an error at

Sheets("strSheetName").Select

Hope you see the problem

Thanks

Bob Phillips
08-28-2008, 08:56 AM
Sheets(strSheetName).Select

simora
08-28-2008, 09:28 AM
XLD

Thanks for the effort, but that did not solve the problem. I still cant seem to pass the value of the sheet name to the 2nd workbook to match up the sheet name

Bob Phillips
08-28-2008, 10:17 AM
That was to work with the code that you had come up with.

simora
08-28-2008, 10:38 AM
It did not. I've still got the same problem. Can you help?

Kenneth Hobs
08-28-2008, 10:48 AM
Simora, Sheets("strSheetName").Select should be: Sheets(strSheetName).Select

Of course that just selects the activesheet as you defined it. If you want to put some data into the other workbook's sheet with the same index as the activesheet's index to A1, then Mike's code is the ticket.

If you want to select the sheet and cell A1 as Mike defined it (with both workbooks open), then:
Sub t()
Dim i As Integer
i = ActiveSheet.Index
Workbooks("BK2.xls").Activate
Worksheets(i).Select
Range("A1").Select
End Sub
You may not have the index relationship that you think though.

simora
08-28-2008, 11:04 AM
RE: Select should be: Sheets(strSheetName).Select

That is still not working.
How do I index both workbooks so that I can set
sheet 1 on book1 to sheet 1 on book2
sheet 5 on book1 to sheet 5 on book2
etc.. etc..

That should solve the problem.

Thanks

simora
08-28-2008, 12:12 PM
Kenneth:
Thanks for pointing me in the right directon.

On Workbook 1
Dim i As Integer
i = ActiveSheet.Index
use when on both WorkBooks & sheets

This is the 2nd WorkBook
Application.Workbooks("Customer2008").Activate
Worksheets(i).Select

Got it to work.

Thanks