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 / January 2008

Tip: Looking for answers? Try searching our database.

Copy range from one workbook to another

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Dale Fye - 04 Jan 2008 16:20 GMT
On a monthly basis, I recieve about 30 workbooks and have to consolidate
them into a single workbook to forward to my prime contractor.  This
involves copying subsections of each of these workbooks into the same
location (sheet/rows) in my consolidated workbook.  I've got code working
that loops through all of the workbooks in the same folder as my
consolidated workbook, and then search those workbooks (3 sheets) for
non-zero values in a particular row/column combination. This function
FindNonZero( ) works great, returns a True/False value to indicate whether
it found the non-zero value, and also gives me the worksheet and row pointer
for the non-zero values.

The portion of my code below works great if there is only a single non-zero
value in the source workbook, but if the code finds a second non-zero value
I get a Runtime Error '1004'  Application-defined or object-defined error
when the "Rng.Select" statement is executed, and my code stops running.    I
don't know whether it is because the source workbook (sWbk) already has a
range selected (I have not figured out how to un-select a range
programmatically) and Excel won't allow that, or whether there is something
else wrong with my methodology.  Would appreciate any assistance or other
recommendations.

Thanks,  Dale

While FindNonZero(sWbk, intWorksheet, intRowPointer) = True
         Debug.Print sWbk.Name, intWorksheet, intRowPointer,
sWbk.Sheets(intWorksheet).Cells(intRowPointer, 12)
         strRange = "A" & (intRowPointer - 9) & ":K" & (intRowPointer - 1)
         Set rng = sWbk.Worksheets(intWorksheet).Range(strRange)
         rng.Select
         Selection.Copy
         aWbk.Sheets(intWorksheet).Activate
         aWbk.Sheets(intWorksheet).Range("A" & (intRowPointer - 9)).Select
         Selection.PasteSpecial Paste:=xlPasteValues, _
                                            Operation:=xlNone, _
                                            SkipBlanks:=False, _
                                            Transpose:=False
Wend
Carim - 04 Jan 2008 16:35 GMT
Hi,

It looks like you are using a Private Function

FindNonZero(sWbk, intWorksheet, intRowPointer)

Could you post this function for further assistance ...

HTH
Dave Peterson - 04 Jan 2008 17:40 GMT
You can only select a range on the activesheet.

So you could do:

         Set rng = sWbk.Worksheets(intWorksheet).Range(strRange)
         swbk.activate
         worksheets(inworksheet).select
         rng.Select

But you're going to have to do the same thing at the other end (before you
paste), too.

But better would be to drop the .select's and .activate's:

         ...
         Set rng = sWbk.Worksheets(intWorksheet).Range(strRange)

         rng.copy
         aWbk.Sheets(intWorksheet).Range("A" & (intRowPointer - 9)) _
              .PasteSpecial Paste:=xlPasteValues, _
                            Operation:=xlNone, _
                            SkipBlanks:=False, _
                            Transpose:=False

> On a monthly basis, I recieve about 30 workbooks and have to consolidate
> them into a single workbook to forward to my prime contractor.  This
[quoted text clipped - 33 lines]
>                                              Transpose:=False
> Wend

Signature

Dave Peterson

Dale Fye - 05 Jan 2008 03:49 GMT
Thanks, Dave.

I thought about that over dinner.  I currently activate that sheet outside
my loop, and needed to move that line inside the loop.

> You can only select a range on the activesheet.
>
[quoted text clipped - 65 lines]
>>                                              Transpose:=False
>> Wend
Dave Peterson - 05 Jan 2008 12:10 GMT
I still would consider dropping the activate's completely.

> Thanks, Dave.
>
[quoted text clipped - 74 lines]
> >
> > Dave Peterson

Signature

Dave Peterson

Dale Fye - 07 Jan 2008 15:44 GMT
Dave,

I could swear I tried that, and that it wouldn't allow me to do the paste
without the sheet being activated.  I'll give it another try, though

>I still would consider dropping the activate's completely.
>
[quoted text clipped - 85 lines]
>> >
>> > Dave Peterson
Dave Peterson - 07 Jan 2008 17:38 GMT
If you have trouble, you'll want to post the current version of your code.

> Dave,
>
[quoted text clipped - 94 lines]
> >
> > Dave Peterson

Signature

Dave Peterson

 
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.