ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Simple Copy/Paste Question (https://www.excelbanter.com/excel-programming/382315-simple-copy-paste-question.html)

Dan R.

Simple Copy/Paste Question
 
This code simply copies a range from WB1 and pastes into into the
first empty column in WB2.Sheet2 then saves WB2, but right before WB2
is closed I need it to copy WB2.Sheet2.Cells(A1:J3) and paste it in
the same column that the other range was pasted. Can someone help me
with this please?

Here's my code:

Sub Copy()
Dim SourceRange As Range
Dim DestRange1 As Range
Dim DestRange2 As Range
Dim BANCol As Range
Dim LC1 As Integer
Dim LC2 As Integer
Dim WB1 As Worksheet
Dim WB2 As Workbook

Application.ScreenUpdating = False

Set WB1 = ActiveSheet
Set WB2 = Workbooks.Open("C:\Documents and Settings\Totals.xls")

LC1 = Lastcol(WB2.Sheets(2)) + 1
LC2 = Lastcol(WB2.Sheets(1))

Set SourceRange = WB1.Columns("A:K")
Set DestRange1 = WB2.Sheets(2).Columns(LC1)
Set DestRange2 = WB2.Sheets(1).Columns(LC2)

SourceRange.Copy DestRange1
DestRange2.Insert

Set BANCol = WB2.Sheets(2).Columns(LC1 + 4)

BANCol.EntireColumn.Delete

WB2.Close savechanges:=True
Application.ScreenUpdating = True

End Sub

Function Lastcol(sh As Worksheet)
On Error Resume Next
Lastcol = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column
On Error GoTo 0
End Function

Thank You,
-- Dan


Tom Ogilvy

Simple Copy/Paste Question
 
see the added line below.

--
regards,
Tom Ogilvy


"Dan R." wrote:

This code simply copies a range from WB1 and pastes into into the
first empty column in WB2.Sheet2 then saves WB2, but right before WB2
is closed I need it to copy WB2.Sheet2.Cells(A1:J3) and paste it in
the same column that the other range was pasted. Can someone help me
with this please?

Here's my code:

Sub Copy()
Dim SourceRange As Range
Dim DestRange1 As Range
Dim DestRange2 As Range
Dim BANCol As Range
Dim LC1 As Integer
Dim LC2 As Integer
Dim WB1 As Worksheet
Dim WB2 As Workbook

Application.ScreenUpdating = False

Set WB1 = ActiveSheet
Set WB2 = Workbooks.Open("C:\Documents and Settings\Totals.xls")

LC1 = Lastcol(WB2.Sheets(2)) + 1
LC2 = Lastcol(WB2.Sheets(1))

Set SourceRange = WB1.Columns("A:K")
Set DestRange1 = WB2.Sheets(2).Columns(LC1)
Set DestRange2 = WB2.Sheets(1).Columns(LC2)

SourceRange.Copy DestRange1
DestRange2.Insert

Set BANCol = WB2.Sheets(2).Columns(LC1 + 4)

BANCol.EntireColumn.Delete


' added line
WB2.Sheet2.Cells(A1:J3).copy wb2.Sheet2.Cells(1,lc1)

WB2.Close savechanges:=True
Application.ScreenUpdating = True

End Sub

Function Lastcol(sh As Worksheet)
On Error Resume Next
Lastcol = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column
On Error GoTo 0
End Function

Thank You,
-- Dan



Dan R.

Simple Copy/Paste Question
 
On Jan 31, 11:03 am, Tom Ogilvy
wrote:
see the added line below.

--
regards,
Tom Ogilvy





"Dan R." wrote:
This code simply copies a range from WB1 and pastes into into the
first empty column in WB2.Sheet2 then saves WB2, but right before WB2
is closed I need it to copy WB2.Sheet2.Cells(A1:J3) and paste it in
the same column that the other range was pasted. Can someone help me
with this please?


Here's my code:


Sub Copy()
Dim SourceRange As Range
Dim DestRange1 As Range
Dim DestRange2 As Range
Dim BANCol As Range
Dim LC1 As Integer
Dim LC2 As Integer
Dim WB1 As Worksheet
Dim WB2 As Workbook


Application.ScreenUpdating = False


Set WB1 = ActiveSheet
Set WB2 = Workbooks.Open("C:\Documents and Settings\Totals.xls")


LC1 = Lastcol(WB2.Sheets(2)) + 1
LC2 = Lastcol(WB2.Sheets(1))


Set SourceRange = WB1.Columns("A:K")
Set DestRange1 = WB2.Sheets(2).Columns(LC1)
Set DestRange2 = WB2.Sheets(1).Columns(LC2)


SourceRange.Copy DestRange1
DestRange2.Insert


Set BANCol = WB2.Sheets(2).Columns(LC1 + 4)


BANCol.EntireColumn.Delete


' added line
WB2.Sheet2.Cells(A1:J3).copy wb2.Sheet2.Cells(1,lc1)



WB2.Close savechanges:=True
Application.ScreenUpdating = True


End Sub


Function Lastcol(sh As Worksheet)
On Error Resume Next
Lastcol = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column
On Error GoTo 0
End Function


Thank You,
-- Dan- Hide quoted text -


- Show quoted text -- Hide quoted text -

- Show quoted text -


Tom,

I'm getting Run-time Error '438': Object doesnt support this property
or method.

Thanks,
-- Dan


Tom Ogilvy

Simple Copy/Paste Question
 
my typo:

WB2.Sheet2.Cells(A1:J3).copy wb2.Sheet2.Cells(1,lc1)

should be

WB2.Sheet2.Range("A1:J3").copy wb2.Sheet2.Cells(1,lc1)

--
Regards,
Tom Ogilvy


"Dan R." wrote:

On Jan 31, 11:03 am, Tom Ogilvy
wrote:
see the added line below.

--
regards,
Tom Ogilvy





"Dan R." wrote:
This code simply copies a range from WB1 and pastes into into the
first empty column in WB2.Sheet2 then saves WB2, but right before WB2
is closed I need it to copy WB2.Sheet2.Cells(A1:J3) and paste it in
the same column that the other range was pasted. Can someone help me
with this please?


Here's my code:


Sub Copy()
Dim SourceRange As Range
Dim DestRange1 As Range
Dim DestRange2 As Range
Dim BANCol As Range
Dim LC1 As Integer
Dim LC2 As Integer
Dim WB1 As Worksheet
Dim WB2 As Workbook


Application.ScreenUpdating = False


Set WB1 = ActiveSheet
Set WB2 = Workbooks.Open("C:\Documents and Settings\Totals.xls")


LC1 = Lastcol(WB2.Sheets(2)) + 1
LC2 = Lastcol(WB2.Sheets(1))


Set SourceRange = WB1.Columns("A:K")
Set DestRange1 = WB2.Sheets(2).Columns(LC1)
Set DestRange2 = WB2.Sheets(1).Columns(LC2)


SourceRange.Copy DestRange1
DestRange2.Insert


Set BANCol = WB2.Sheets(2).Columns(LC1 + 4)


BANCol.EntireColumn.Delete


' added line
WB2.Sheet2.Cells(A1:J3).copy wb2.Sheet2.Cells(1,lc1)



WB2.Close savechanges:=True
Application.ScreenUpdating = True


End Sub


Function Lastcol(sh As Worksheet)
On Error Resume Next
Lastcol = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column
On Error GoTo 0
End Function


Thank You,
-- Dan- Hide quoted text -


- Show quoted text -- Hide quoted text -

- Show quoted text -


Tom,

I'm getting Run-time Error '438': Object doesnt support this property
or method.

Thanks,
-- Dan



Tom Ogilvy

Simple Copy/Paste Question
 
My bad again

WB2.Sheet2.Cells(A1:J3).copy wb2.Sheet2.Cells(1,lc1)


should actually be

WB2.Sheets(2).Range("A1:J3").copy wb2.Sheets(2).Cells(1,lc1)


I copied your notation:
WB2.Sheet2.Cells(A1:J3)


so I wouldn't mess it up, but it was already messed up and I didn't pay
attention.

--
Regards,
Tom Ogilvy


"Dan R." wrote:

On Jan 31, 11:03 am, Tom Ogilvy
wrote:
see the added line below.

--
regards,
Tom Ogilvy





"Dan R." wrote:
This code simply copies a range from WB1 and pastes into into the
first empty column in WB2.Sheet2 then saves WB2, but right before WB2
is closed I need it to copy WB2.Sheet2.Cells(A1:J3) and paste it in
the same column that the other range was pasted. Can someone help me
with this please?


Here's my code:


Sub Copy()
Dim SourceRange As Range
Dim DestRange1 As Range
Dim DestRange2 As Range
Dim BANCol As Range
Dim LC1 As Integer
Dim LC2 As Integer
Dim WB1 As Worksheet
Dim WB2 As Workbook


Application.ScreenUpdating = False


Set WB1 = ActiveSheet
Set WB2 = Workbooks.Open("C:\Documents and Settings\Totals.xls")


LC1 = Lastcol(WB2.Sheets(2)) + 1
LC2 = Lastcol(WB2.Sheets(1))


Set SourceRange = WB1.Columns("A:K")
Set DestRange1 = WB2.Sheets(2).Columns(LC1)
Set DestRange2 = WB2.Sheets(1).Columns(LC2)


SourceRange.Copy DestRange1
DestRange2.Insert


Set BANCol = WB2.Sheets(2).Columns(LC1 + 4)


BANCol.EntireColumn.Delete


' added line
WB2.Sheet2.Cells(A1:J3).copy wb2.Sheet2.Cells(1,lc1)



WB2.Close savechanges:=True
Application.ScreenUpdating = True


End Sub


Function Lastcol(sh As Worksheet)
On Error Resume Next
Lastcol = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column
On Error GoTo 0
End Function


Thank You,
-- Dan- Hide quoted text -


- Show quoted text -- Hide quoted text -

- Show quoted text -


Tom,

I'm getting Run-time Error '438': Object doesnt support this property
or method.

Thanks,
-- Dan



Dan R.

Simple Copy/Paste Question
 
On Jan 31, 11:39 am, Tom Ogilvy
wrote:
My bad again

WB2.Sheet2.Cells(A1:J3).copy wb2.Sheet2.Cells(1,lc1)

should actually be

WB2.Sheets(2).Range("A1:J3").copy wb2.Sheets(2).Cells(1,lc1)

I copied your notation:

WB2.Sheet2.Cells(A1:J3)


so I wouldn't mess it up, but it was already messed up and I didn't pay
attention.

--
Regards,
Tom Ogilvy



"Dan R." wrote:
On Jan 31, 11:03 am, Tom Ogilvy
wrote:
see the added line below.


--
regards,
Tom Ogilvy


"Dan R." wrote:
This code simply copies a range from WB1 and pastes into into the
first empty column in WB2.Sheet2 then saves WB2, but right before WB2
is closed I need it to copy WB2.Sheet2.Cells(A1:J3) and paste it in
the same column that the other range was pasted. Can someone help me
with this please?


Here's my code:


Sub Copy()
Dim SourceRange As Range
Dim DestRange1 As Range
Dim DestRange2 As Range
Dim BANCol As Range
Dim LC1 As Integer
Dim LC2 As Integer
Dim WB1 As Worksheet
Dim WB2 As Workbook


Application.ScreenUpdating = False


Set WB1 = ActiveSheet
Set WB2 = Workbooks.Open("C:\Documents and Settings\Totals.xls")


LC1 = Lastcol(WB2.Sheets(2)) + 1
LC2 = Lastcol(WB2.Sheets(1))


Set SourceRange = WB1.Columns("A:K")
Set DestRange1 = WB2.Sheets(2).Columns(LC1)
Set DestRange2 = WB2.Sheets(1).Columns(LC2)


SourceRange.Copy DestRange1
DestRange2.Insert


Set BANCol = WB2.Sheets(2).Columns(LC1 + 4)


BANCol.EntireColumn.Delete


' added line
WB2.Sheet2.Cells(A1:J3).copy wb2.Sheet2.Cells(1,lc1)


WB2.Close savechanges:=True
Application.ScreenUpdating = True


End Sub


Function Lastcol(sh As Worksheet)
On Error Resume Next
Lastcol = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column
On Error GoTo 0
End Function


Thank You,
-- Dan- Hide quoted text -


- Show quoted text -- Hide quoted text -


- Show quoted text -


Tom,


I'm getting Run-time Error '438': Object doesnt support this property
or method.


Thanks,
-- Dan- Hide quoted text -


- Show quoted text -


Third times a charm... Thanks a lot Tom it works perfectly.

-- Dan



All times are GMT +1. The time now is 09:40 AM.

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