Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / New Users / December 2007

Tip: Looking for answers? Try searching our database.

RowToCopy problem

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Paul3rd - 07 Dec 2007 20:17 GMT
Hello,
I'm trying to automate a worksheet. I have a command button that calls a
module,
(Module2), the code selects a range of cells (Range("A7:I7") and copies that
range
to the next empty row of worksheet2 in the workbook.
I can only get cell A7 to copy correctly, none of the remaining
Range(B7:I7), copy over.
The code is as follows:
Option Explicit

Sub movedata()
Dim S2Row As Long
Dim Paul As Integer
Dim RowToCopy As Integer

RowToCopy = 1
S2Row = Worksheets("sheet2").Range("A1").End(xlDown).Row

For Paul = 1 To RowToCopy
       Worksheets("sheet2").Range("A" & S2Row + Paul).Value = _
       Worksheets("sheet1").Range("A7:I7" & Paul).Value
   
Next Paul

End Sub

I then tried:
Option Explicit

Sub movedata()
Dim S2Row As Long
Dim Paul As Integer
Dim RowToCopy As Integer
Dim MyRange As Range

Set MyRange = ActiveSheet.Range("A7:I7")
RowToCopy = 1
S2Row = Worksheets("sheet2").Range("A1").End(xlDown).Row

For Paul = 1 To RowToCopy
       Worksheets("sheet2").Range("A" & S2Row + Paul).Value = _
       Worksheets("sheet1").Range(MyRange).Value
   
Next Paul

End Sub
But that gives me a RunTime Error #1004
"Application-Defined" or "Object-Defined" error.

Thanks in advance for any help,
Don Guillett - 07 Dec 2007 20:32 GMT
row+1

Signature

Don Guillett
Microsoft MVP Excel
SalesAid Software
dguillett1@austin.rr.com

> Hello,
> I'm trying to automate a worksheet. I have a command button that calls a
[quoted text clipped - 48 lines]
>
> Thanks in advance for any help,
Paul3rd - 07 Dec 2007 20:54 GMT
Thanks for your reply Don,
I'm having a bad day though;
where in the code would I insert row+1?

> row+1
>
[quoted text clipped - 50 lines]
> >
> > Thanks in advance for any help,
David Heaton - 08 Dec 2007 11:16 GMT
Paul,

The reason on A7 is being copied across is because thats all you are asking
it to do.

>>Worksheets("sheet2").Range("A" & S2Row + Paul).Value

selects only the cell A & (S2Row+Paul).  Which in your case is A7.

You need to amend this  to be a range identical to the range you are copying
from , i.e Worksheets("sheet2").Range("A7:I7").Value  would work fine

you have a loop running from 1 to RowToCopy, but you've declared RowToCopy
to be 1, so essentially your loop is 'For Paul =1 to 1.  You may want the
option to copy multiple rows later which is why this is here.  If not, try
this for copying ranges.

S2Row = Worksheets("sheet2").Range("A1").End(xlDown).Row
Worksheets("sheet1").Range("A7:I7").Select
Selection.Copy
Worksheets("sheet2").Activate
Worksheets("sheet2").Range("a" & S2Row).Activate
ActiveSheet.Paste

hth

David

> Thanks for your reply Don,
> I'm having a bad day though;
[quoted text clipped - 55 lines]
>> >
>> > Thanks in advance for any help,
Paul3rd - 08 Dec 2007 16:49 GMT
Thanks David,
I changed the code to:

Sub movedata()
Dim S2Row As Long
Dim Copies As Integer
Dim Paul As Integer
Dim RowToCopy As Integer

RowToCopy = 1
For Paul = 1 To RowToCopy
S2Row = Worksheets("sheet2").Range("A1").End(xlDown).Row

   Worksheets("sheet1").Range("A7:I7").Select
   Selection.Copy
   Worksheets("sheet2").Activate
   Worksheets("sheet2").Range("A" & S2Row + (Paul -
1)).PasteSpecial(xlPasteValues)    
   
  Next Paul
End Sub
The code does everything I want except to paste the range onto the
next available row on worksheet2. It's either all the way up with xlUp or on
row 65536 with xlDown.
Can you help one more time?

> Paul,
>
[quoted text clipped - 83 lines]
> >> >
> >> > Thanks in advance for any help,
Don Guillett - 08 Dec 2007 17:53 GMT
Send me a workbook along with clear instructions of what you want with
before and after examples

Signature

Don Guillett
Microsoft MVP Excel
SalesAid Software
dguillett1@austin.rr.com

> Thanks David,
> I changed the code to:
[quoted text clipped - 116 lines]
>> >> >
>> >> > Thanks in advance for any help,
David Heaton - 08 Dec 2007 23:31 GMT
Ok,

to find the next available row in Sheet2 replace

   S2Row = Worksheets("sheet2").Range("A1").End(xlDown).Row

with

   Sheet2.Range("a1").Select
   Selection.End(xlDown).Select
   S2Row = Selection.Row + 1

This assumes you have no occasional empty rows (if you do let me know and
i'll give you the work around for that)

Also I still feel the For...Next loop is redundant .  Can you let me know
why you need it.

Regards

David

> Thanks David,
> I changed the code to:
[quoted text clipped - 116 lines]
>> >> >
>> >> > Thanks in advance for any help,

Rate this thread:






 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.