View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.misc
Roger Govier[_3_] Roger Govier[_3_] is offline
external usenet poster
 
Posts: 2,480
Default VBA help to copy variable range

Hi

You need another & and put the colon within the quotes before the F

Sheets("sheet1").Range("A" & Newrow & ":F" & Maxrowtxt).Copy

--
Regards
Roger Govier

"BRB" wrote in message
...
This is almost what I was looking for. Can you help me?
I have one sheet that gets updated daily from an external source and need
to
copy only the new rows into a second sheet in the same workbook, but only
the
data in columns A through F, the other columns in those rows I do no need
to
copy.
I can't figure out how to designate the range of the cells to copy. I
tried
the following command but I get a compile error:

Sheets("sheet1").Range("A" & Newrow : "F" & Maxrowtxt).Copy
Destination:=.Range("A" & Newrow)

Help is greatly appreciated.

"JLatham" wrote:

Since we've started down the path using a Range, we'll continue. Need
another definitition near the top
Dim rngToPaste As Range

just ahead of the line beginning Workbooks("OtherBook.xls")....
place this code:

rngAddress="C17:H" & lastrow+7
'remember next is one line of code
set rngToCopy =
Workbooks("OtherBook.xls").Worksheets("CopySheet") .Range(rngAddress)
'
'now change that line that starts as Workbooks("OtherBook.xls").... to
simply:
rngToPaste.Value = rngToCopy.Value

A more condensed version of it all:
Sub CopyBetweenBooks()
Dim lastRow as Long
Dim rngAddress As String
Dim rngToCopy As Range
Dim rngToPaste As Range
lastRow = Range("M" & Rows.Count).End(xlUp).Row
rngAddress = "J10:O" & lastRow

'remember next is one line of code
Set rngToCopy =
ActiveWorkbook.Worksheets("SourceSheet").Range(rng Address)

rngAddress="C17:H" & lastrow+7
'remember next is one line of code
set rngToPaste =
Workbooks("OtherBook.xls").Worksheets("CopySheet") .Range(rngAddress)

rngToPaste.Value = rngToCopy.Value
End Sub



"Eduardo" wrote:

Thank you for your answer I'm new on this just a question how I get the
range
copy in the other worksheet starting in cell C17

"JLatham" wrote:

Pick a column between J and O (inclusive) that will have the most
information
displayed down the sheet. For this example we'll assume it's column
M, plus
this keeps us with a method that works with any of the columns, not
just J or
O

Dim lastRow as Long
dim rngAddress as String
dim rngToCopy as Range
lastRow = Range("M" & Rows.Count).End(xlUp).Row
rngAddress = "J10:O" & lastRow


that gives you address of the range and you can use that address to
set a
range as:
Set rngToCopy =
ActiveWorkbook.Worksheets("SourceSheet").Range(rng Address)

then go from there for your copy/paste into the other workbook and
worksheet. A generic way (change workbook/sheet names as needed) -
this does
the same as copy, assuming second workbook is open:
(this would be all one line)

Workbooks("OtherBook.xls").Worksheets("CopySheet") .Range(rngAddress).Value
=
rngToCopy.Value

That would copy it into J10:O## in the other book.

Hope this helps some.

"Eduardo" wrote:

I know that once I saw the answer but I was not able to find it
again
I have an spreadsheet with macros that help me to create an EDI
format file.
Just what I need is to be able to select and copy a variable range
from one
workbook to another workbook.
The range vary depending on my fill down formula.
Information is in cell J10 to O??
Thank you