ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Copy and paste between sheets error (https://www.excelbanter.com/excel-programming/393409-copy-paste-between-sheets-error.html)

[email protected]

Copy and paste between sheets error
 
I am having a little problem with this code. It won't copy and paste
from one worksheet to another. I have used the same code for copy and
paste before but never in a find loop so I'm guessing maybe I have to
do something different. I also tried

Workbooks("Book1.xls").Worksheets(2).Range(Cells(y , 1), Cells(y,
2)).PasteSpecial Paste:=xlPasteAll

Worksheets(2).Range(Cells(y, 1), Cells(y, 2)).PasteSpecial
Paste:=xlPasteAll

Worksheets("SatLog").Range(Cells(y, 1), Cells(y, 2)).PasteSpecial
Paste:=xlPasteAll

None worked

With Worksheets(1).Range("A1:A500")
Set c = .Find("Substrate # 1", LookIn:=xlValues)

If Not c Is Nothing Then
firstAddress = c.Address
y = 1
Do

Range(c.Offset(0, 0), c.Offset(3, 1)).Copy
Workbooks("Book1.xls").Worksheets("SatLog").Range( Cells(y,
1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll <--------Errors here
Set c = .FindNext(c)
y = y + 4

Loop While Not c Is Nothing And c.Address < firstAddress
End If
End With


Dave Peterson

Copy and paste between sheets error
 
If SatLog in book1.xls isn't the activesheet, then this line will fail.

Workbooks("Book1.xls").Worksheets("SatLog").Range( Cells(y, 1), _
Cells(y, 2)).PasteSpecial Paste:=xlPasteAll

Those cells() reference refer to the activesheet (if the code is in a general
module) or the worksheet that owns the code (if the code is behind a worksheet).

I'd use something like this (untested):


Dim DestCell as range 'in your declaration section (at the top)

With Worksheets(1).Range("A1:A500")
Set c = .Find("Substrate # 1", LookIn:=xlValues)

If Not c Is Nothing Then
firstAddress = c.Address
y = 1
Do

with workbooks("book1.xls").worksheets("satlog")
set destcell = .range(.cells(y,1),.cells(y,2))
end with

Range(c.Offset(0, 0), c.Offset(3, 1)).Copy
destcell.PasteSpecial Paste:=xlPasteAll

Set c = .FindNext(c)
y = y + 4

Loop While Not c Is Nothing And c.Address < firstAddress
End If
End With





wrote:

I am having a little problem with this code. It won't copy and paste
from one worksheet to another. I have used the same code for copy and
paste before but never in a find loop so I'm guessing maybe I have to
do something different. I also tried

Workbooks("Book1.xls").Worksheets(2).Range(Cells(y , 1), Cells(y,
2)).PasteSpecial Paste:=xlPasteAll

Worksheets(2).Range(Cells(y, 1), Cells(y, 2)).PasteSpecial
Paste:=xlPasteAll

Worksheets("SatLog").Range(Cells(y, 1), Cells(y, 2)).PasteSpecial
Paste:=xlPasteAll

None worked

With Worksheets(1).Range("A1:A500")
Set c = .Find("Substrate # 1", LookIn:=xlValues)

If Not c Is Nothing Then
firstAddress = c.Address
y = 1
Do

Range(c.Offset(0, 0), c.Offset(3, 1)).Copy
Workbooks("Book1.xls").Worksheets("SatLog").Range( Cells(y,
1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll <--------Errors here
Set c = .FindNext(c)
y = y + 4

Loop While Not c Is Nothing And c.Address < firstAddress
End If
End With


--

Dave Peterson

[email protected]

Copy and paste between sheets error
 
On Jul 16, 7:55 am, Dave Peterson wrote:
If SatLog in book1.xls isn't the activesheet, then this line will fail.

Workbooks("Book1.xls").Worksheets("SatLog").Range( Cells(y, 1), _
Cells(y, 2)).PasteSpecial Paste:=xlPasteAll

Those cells() reference refer to the activesheet (if the code is in a general
module) or the worksheet that owns the code (if the code is behind a worksheet).

I'd use something like this (untested):

Dim DestCell as range 'in your declaration section (at the top)

With Worksheets(1).Range("A1:A500")
Set c = .Find("Substrate # 1", LookIn:=xlValues)

If Not c Is Nothing Then
firstAddress = c.Address
y = 1
Do

with workbooks("book1.xls").worksheets("satlog")
set destcell = .range(.cells(y,1),.cells(y,2))
end with

Range(c.Offset(0, 0), c.Offset(3, 1)).Copy
destcell.PasteSpecial Paste:=xlPasteAll

Set c = .FindNext(c)
y = y + 4

Loop While Not c Is Nothing And c.Address < firstAddress
End If
End With





wrote:

I am having a little problem with this code. It won't copy and paste
from one worksheet to another. I have used the same code for copy and
paste before but never in a find loop so I'm guessing maybe I have to
do something different. I also tried


Workbooks("Book1.xls").Worksheets(2).Range(Cells(y , 1), Cells(y,
2)).PasteSpecial Paste:=xlPasteAll


Worksheets(2).Range(Cells(y, 1), Cells(y, 2)).PasteSpecial
Paste:=xlPasteAll


Worksheets("SatLog").Range(Cells(y, 1), Cells(y, 2)).PasteSpecial
Paste:=xlPasteAll


None worked


With Worksheets(1).Range("A1:A500")
Set c = .Find("Substrate # 1", LookIn:=xlValues)


If Not c Is Nothing Then
firstAddress = c.Address
y = 1
Do


Range(c.Offset(0, 0), c.Offset(3, 1)).Copy
Workbooks("Book1.xls").Worksheets("SatLog").Range( Cells(y,
1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll <--------Errors here
Set c = .FindNext(c)
y = y + 4


Loop While Not c Is Nothing And c.Address < firstAddress
End If
End With


--

Dave Peterson- Hide quoted text -

- Show quoted text -


Dave Thank you it did work. SatLog was not the active sheet but the
change you made to the code made it work out. Thanks again.



All times are GMT +1. The time now is 02:12 PM.

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