ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Macro independent of newbook name (https://www.excelbanter.com/excel-programming/396569-macro-independent-newbook-name.html)

HA14

Macro independent of newbook name
 
I have a macro which should copy one sheet to a new book and then I
jump back and copy another sheet to the same new book. My problem how
do I make my macro independent of file names of the file I am copying
from and to?

I have called the file I am copying from ThisWorkbook but what should
I call the file I am copying to, mentioned as "book1" in the macro
below:

ThisWorkbook.Activate
Sheets("A&S kvt").Select
Range("A1:U56").Select
Selection.Copy
Windows("book1").Activate
Sheets("Sheet2").Select
ActiveSheet.Paste

Can someone help?

From
HA14


Pflugs

Macro independent of newbook name
 
If you are always going to copy the sheets to a new workbook, create a
workbook object. Then your code becomes this:

Dim wkbNewBook As Workbook
Set wkbNewBook = Application.Workbooks.Add

ThisWorkbook.Activate
Sheets("A&S kvt").Select
Range("A1:U56").Select
Selection.Copy
wkbNewBook.Activate
Sheets("Sheet1").Select
ActiveSheet.Paste


HTH,
Pflugs

"HA14" wrote:

I have a macro which should copy one sheet to a new book and then I
jump back and copy another sheet to the same new book. My problem how
do I make my macro independent of file names of the file I am copying
from and to?

I have called the file I am copying from ThisWorkbook but what should
I call the file I am copying to, mentioned as "book1" in the macro
below:

ThisWorkbook.Activate
Sheets("A&S kvt").Select
Range("A1:U56").Select
Selection.Copy
Windows("book1").Activate
Sheets("Sheet2").Select
ActiveSheet.Paste

Can someone help?

From
HA14



HA14

Macro independent of newbook name
 
Thank you, this did some of it but unfortunately not all. Can you help
me one more time? I want to copy three different sheets from this
workbook to the same new workbook. The problem is now first sheet
copies into one new workbook but the two other sheets copy into a
second new workbook - how should I fix this?

Dim wkbNewBook As Workbook
Set wkbNewBook = Application.Workbooks.Add

Range("A1:U58").Select
Selection.Copy
Workbooks.Add Template:="Workbook"
ActiveSheet.Paste

ThisWorkbook.Activate
Sheets("A&S kvt").Select
Range("A1:U56").Select
Selection.Copy
wkbNewBook.Activate
Sheets("Sheet2").Select
ActiveSheet.Paste

ThisWorkbook.Activate
Sheets("SOL kvt").Select
Range("A1:U30").Select
Selection.Copy
wkbNewBook.Activate
Sheets("Sheet3").Select
ActiveSheet.Paste

Great if you can help again.
HA14


Pflugs

Macro independent of newbook name
 
Just add a second workbook object. Then copy the second two ranges to that
workbook.

Dim wkbNewBook As Workbook
Set wkbNewBook = Application.Workbooks.Add
Dim wkbNewBook2 as workbook
set wkbNewBook2 = application.workbooks.add

Range("A1:U58").Copy
wkbNewBook.sheets(1).activate
ActiveSheet.Paste

ThisWorkbook.Activate
Sheets("A&S kvt").Select
Range("A1:U56").Copy
wkbNewBook.Activate
Sheets("Sheet2").Select
ActiveSheet.Paste

ThisWorkbook.Activate
Sheets("SOL kvt").Select
Range("A1:U30").Copy
wkbNewBook2.Activate
Sheets("Sheet3").Select
ActiveSheet.Paste

Hope that helps,
Pflugs

"HA14" wrote:

Thank you, this did some of it but unfortunately not all. Can you help
me one more time? I want to copy three different sheets from this
workbook to the same new workbook. The problem is now first sheet
copies into one new workbook but the two other sheets copy into a
second new workbook - how should I fix this?

Dim wkbNewBook As Workbook
Set wkbNewBook = Application.Workbooks.Add

Range("A1:U58").Select
Selection.Copy
Workbooks.Add Template:="Workbook"
ActiveSheet.Paste

ThisWorkbook.Activate
Sheets("A&S kvt").Select
Range("A1:U56").Select
Selection.Copy
wkbNewBook.Activate
Sheets("Sheet2").Select
ActiveSheet.Paste

ThisWorkbook.Activate
Sheets("SOL kvt").Select
Range("A1:U30").Select
Selection.Copy
wkbNewBook.Activate
Sheets("Sheet3").Select
ActiveSheet.Paste

Great if you can help again.
HA14



HA14

Macro independent of newbook name
 
Thank you for the coding, just want to let you know I want it all
copied to the same new workbook and therefore the macro now reads:

Dim wkbNewBook As Workbook
Set wkbNewBook = Application.Workbooks.Add

Range("A1:U58").Copy
wkbNewBook.Sheets(1).Activate
ActiveSheet.Paste

ThisWorkbook.Activate
Sheets("A&S kvt").Select
Range("A1:U56").Copy
wkbNewBook.Activate
Sheets("Sheet2").Select
ActiveSheet.Paste

ThisWorkbook.Activate
Sheets("SOL kvt").Select
Range("A1:U30").Copy
wkbNewBook.Activate
Sheets("Sheet3").Select
ActiveSheet.Paste

Hmm, I keep having the problem that nothing is actually copied from
the first sheet which I cannot figure out why since the area A1:U58 is
correct. The two other sheets copy in fine to the new workbook -
strange....

Thanks again
HA14


Pflugs

Macro independent of newbook name
 
How about trying:

Range("A1:U58").Copy
wkbNewBook.Activate
Sheets(1).Select
ActiveSheet.Paste

Pflugs

"HA14" wrote:

Thank you for the coding, just want to let you know I want it all
copied to the same new workbook and therefore the macro now reads:

Dim wkbNewBook As Workbook
Set wkbNewBook = Application.Workbooks.Add

Range("A1:U58").Copy
wkbNewBook.Sheets(1).Activate
ActiveSheet.Paste

ThisWorkbook.Activate
Sheets("A&S kvt").Select
Range("A1:U56").Copy
wkbNewBook.Activate
Sheets("Sheet2").Select
ActiveSheet.Paste

ThisWorkbook.Activate
Sheets("SOL kvt").Select
Range("A1:U30").Copy
wkbNewBook.Activate
Sheets("Sheet3").Select
ActiveSheet.Paste

Hmm, I keep having the problem that nothing is actually copied from
the first sheet which I cannot figure out why since the area A1:U58 is
correct. The two other sheets copy in fine to the new workbook -
strange....

Thanks again
HA14



HA14

Macro independent of newbook name
 
So strange still nothing copying in. I will find a solution somehow.
Thanks for your help on adding right coding on workbook.

From
HA14


Pflugs

Macro independent of newbook name
 
Try this code:

Sub work()
' Note: You will likely have to change the
' name of the sheets to the actual names in
' your workbook.

' Create new workbook
Dim wkbNewBook As Workbook
Set wkbNewBook = Application.Workbooks.Add

' Copy first range
ThisWorkbook.Activate
' Change this name as appropriate
Sheets("Sheet1").Select
Range("A1:U58").Copy
wkbNewBook.Activate
Sheets("Sheet1").Select
ActiveSheet.Paste

' Copy second range
ThisWorkbook.Activate
' Change this name as appropriate
Sheets("sheet2").Select
Range("A1:U56").Copy
wkbNewBook.Activate
Sheets("Sheet2").Select
ActiveSheet.Paste

' Copy third range
ThisWorkbook.Activate
' Change this name as appropriate
Sheets("sheet3").Select
Range("A1:U30").Copy
wkbNewBook.Activate
Sheets("Sheet3").Select
ActiveSheet.Paste

Application.CutCopyMode = False

End Sub

It worked for me.

Pflugs

"HA14" wrote:

So strange still nothing copying in. I will find a solution somehow.
Thanks for your help on adding right coding on workbook.

From
HA14



HA14

Macro independent of newbook name
 
Thank you for keep helping me. In the meantime I found a great coding
doing another search. This one works perfect:

Application.ScreenUpdating = False

Dim NewFileName As String
Dim StartWkBk As Workbook

Set StartWkBk = ActiveWorkbook

NewFileName = InputBox("Enter file name to save overview of
Divisions per quarter (ROAD kvt, A&S kvt and SOL kvt) in separate
file: ")

With StartWkBk

.Sheets(Array("ROAD kvt", "A&S kvt", "SOL kvt")).Copy

ActiveSheet.Select
ActiveWorkbook.SaveAs Filename:=.Path & "\" & NewFileName & ".xls"
End With

Application.ScreenUpdating = True
End Sub

From
HA14



All times are GMT +1. The time now is 03:37 PM.

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