ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Name Active Workbook (https://www.excelbanter.com/excel-programming/349107-name-active-workbook.html)

Matthew R

Name Active Workbook
 
I am trying to create a simple copy/paste macro from one workbook with many
tabs to another with many tabs. The process is: a user opens an always
different named workbook runs macro from a menu. The macro then has the user
select the second workbook manually. The macro will then take data from the
second workbook and paste into first workbook.

How do I rename the first workbook only for the duration of the macro so the
macro knows to go back to that file to paste too? I hope this is clear.


Ron de Bruin

Name Active Workbook
 
Hi Matthew

You can create a reference to the first workbook before you open the other one

Dim wb1 As Workbook
Set wb1 = ActiveWorkbook

You can use wb1 now in your code to paste

wb1.Sheets("Sheet1").Range ("A1")



--
Regards Ron de Bruin
http://www.rondebruin.nl


"Matthew R" <Matthew wrote in message ...
I am trying to create a simple copy/paste macro from one workbook with many
tabs to another with many tabs. The process is: a user opens an always
different named workbook runs macro from a menu. The macro then has the user
select the second workbook manually. The macro will then take data from the
second workbook and paste into first workbook.

How do I rename the first workbook only for the duration of the macro so the
macro knows to go back to that file to paste too? I hope this is clear.




Matthew R[_2_]

Name Active Workbook
 
What am I doing wrong?

Sub ITMODELCOPY()

Dim wb1 As Workbook
Set wb1 = ActiveWorkbook

MsgBox "Select the IT Model File"
TEMPLa = Application.GetOpenFilename("Excel (*.xls), *.xls")
TEMPL = Dir(TEMPLa)
TEMPLacik = 0
If ActiveWorkbook Is Nothing Then GoTo ac
ad = ActiveWorkbook.Name
If ad = TEMPL Then TEMPLacik = 1
ActiveWindow.ActivateNext
Do While ActiveWorkbook.Name < ad
If ActiveWorkbook.Name = TEMPL Then TEMPLacik = 1
ActiveWindow.ActivateNext
Loop
ac:
If TEMPLacik = 0 Then Workbooks.Open (TEMPLa)
Workbooks(TEMPL).Activate
Sheets("IT Costing Detail").Select
Range("C112").Select

Workbooks(wb1).Activate

"Ron de Bruin" wrote:

Hi Matthew

You can create a reference to the first workbook before you open the other one

Dim wb1 As Workbook
Set wb1 = ActiveWorkbook

You can use wb1 now in your code to paste

wb1.Sheets("Sheet1").Range ("A1")



--
Regards Ron de Bruin
http://www.rondebruin.nl


"Matthew R" <Matthew wrote in message ...
I am trying to create a simple copy/paste macro from one workbook with many
tabs to another with many tabs. The process is: a user opens an always
different named workbook runs macro from a menu. The macro then has the user
select the second workbook manually. The macro will then take data from the
second workbook and paste into first workbook.

How do I rename the first workbook only for the duration of the macro so the
macro knows to go back to that file to paste too? I hope this is clear.





Ron de Bruin

Name Active Workbook
 
Hi

You can test if the workbook is open with a function

Sub ITMODELCOPY()

Dim wb1 As Workbook
Dim TEMPLa As Variant
Dim TEMPL As String
Set wb1 = ActiveWorkbook

MsgBox "Select the IT Model File"
TEMPLa = Application.GetOpenFilename("Excel (*.xls), *.xls")
TEMPL = Dir(TEMPLa)
If bIsBookOpen(TEMPL) Then
'do nothing
Else
Workbooks.Open (TEMPLa)
End If

wb1.Activate
End Sub

Function bIsBookOpen(ByRef szBookName As String) As Boolean
' Rob Bovey
On Error Resume Next
bIsBookOpen = Not (Application.Workbooks(szBookName) Is Nothing)
End Function


--
Regards Ron de Bruin
http://www.rondebruin.nl


"Matthew R" wrote in message ...
What am I doing wrong?

Sub ITMODELCOPY()

Dim wb1 As Workbook
Set wb1 = ActiveWorkbook

MsgBox "Select the IT Model File"
TEMPLa = Application.GetOpenFilename("Excel (*.xls), *.xls")
TEMPL = Dir(TEMPLa)
TEMPLacik = 0
If ActiveWorkbook Is Nothing Then GoTo ac
ad = ActiveWorkbook.Name
If ad = TEMPL Then TEMPLacik = 1
ActiveWindow.ActivateNext
Do While ActiveWorkbook.Name < ad
If ActiveWorkbook.Name = TEMPL Then TEMPLacik = 1
ActiveWindow.ActivateNext
Loop
ac:
If TEMPLacik = 0 Then Workbooks.Open (TEMPLa)
Workbooks(TEMPL).Activate
Sheets("IT Costing Detail").Select
Range("C112").Select

Workbooks(wb1).Activate

"Ron de Bruin" wrote:

Hi Matthew

You can create a reference to the first workbook before you open the other one

Dim wb1 As Workbook
Set wb1 = ActiveWorkbook

You can use wb1 now in your code to paste

wb1.Sheets("Sheet1").Range ("A1")



--
Regards Ron de Bruin
http://www.rondebruin.nl


"Matthew R" <Matthew wrote in message ...
I am trying to create a simple copy/paste macro from one workbook with many
tabs to another with many tabs. The process is: a user opens an always
different named workbook runs macro from a menu. The macro then has the user
select the second workbook manually. The macro will then take data from the
second workbook and paste into first workbook.

How do I rename the first workbook only for the duration of the macro so the
macro knows to go back to that file to paste too? I hope this is clear.







Matthew R[_2_]

Name Active Workbook
 
Thanks Ron!...That worked perfectly. Have a nice day!

"Ron de Bruin" wrote:

Hi

You can test if the workbook is open with a function

Sub ITMODELCOPY()

Dim wb1 As Workbook
Dim TEMPLa As Variant
Dim TEMPL As String
Set wb1 = ActiveWorkbook

MsgBox "Select the IT Model File"
TEMPLa = Application.GetOpenFilename("Excel (*.xls), *.xls")
TEMPL = Dir(TEMPLa)
If bIsBookOpen(TEMPL) Then
'do nothing
Else
Workbooks.Open (TEMPLa)
End If

wb1.Activate
End Sub

Function bIsBookOpen(ByRef szBookName As String) As Boolean
' Rob Bovey
On Error Resume Next
bIsBookOpen = Not (Application.Workbooks(szBookName) Is Nothing)
End Function


--
Regards Ron de Bruin
http://www.rondebruin.nl


"Matthew R" wrote in message ...
What am I doing wrong?

Sub ITMODELCOPY()

Dim wb1 As Workbook
Set wb1 = ActiveWorkbook

MsgBox "Select the IT Model File"
TEMPLa = Application.GetOpenFilename("Excel (*.xls), *.xls")
TEMPL = Dir(TEMPLa)
TEMPLacik = 0
If ActiveWorkbook Is Nothing Then GoTo ac
ad = ActiveWorkbook.Name
If ad = TEMPL Then TEMPLacik = 1
ActiveWindow.ActivateNext
Do While ActiveWorkbook.Name < ad
If ActiveWorkbook.Name = TEMPL Then TEMPLacik = 1
ActiveWindow.ActivateNext
Loop
ac:
If TEMPLacik = 0 Then Workbooks.Open (TEMPLa)
Workbooks(TEMPL).Activate
Sheets("IT Costing Detail").Select
Range("C112").Select

Workbooks(wb1).Activate

"Ron de Bruin" wrote:

Hi Matthew

You can create a reference to the first workbook before you open the other one

Dim wb1 As Workbook
Set wb1 = ActiveWorkbook

You can use wb1 now in your code to paste

wb1.Sheets("Sheet1").Range ("A1")



--
Regards Ron de Bruin
http://www.rondebruin.nl


"Matthew R" <Matthew wrote in message ...
I am trying to create a simple copy/paste macro from one workbook with many
tabs to another with many tabs. The process is: a user opens an always
different named workbook runs macro from a menu. The macro then has the user
select the second workbook manually. The macro will then take data from the
second workbook and paste into first workbook.

How do I rename the first workbook only for the duration of the macro so the
macro knows to go back to that file to paste too? I hope this is clear.









All times are GMT +1. The time now is 12:32 AM.

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