PasteSpecial Error 1004?

D

DaveM

Hi;
I have two seperate workbooks open and each running a macro that do
different types of copy and pastespecial routines. By themselevs (eg. when
only one file is open and running) the macro runs fine. Each macro prefroms
a copy and pastespecial routine at different intervals. One runs every 60
secs and the other runs every 15 secs.

When i run both marcos with the files open and i step away i (not
interacting with either file, etc.) I get a error routinely that reads
"pastespecial of Range Class Failed Error 1004".

Without dumping the code in here do you have any ideas what this could be
caused by? The two macros confliciting somehow with clipboard, or thier
timing is being conflicted?

Thanks
DaveM
 
J

Jim Rech

The clipboard is a shared resource and one macro using or clearing it could
interfere with the other. You might consider setting a flag of some sort
when a macro starts its copy and clearing it when done. The macro would
also have to check if the flag is already set before it does its copy. A
flag could be a text file or an INI file entry or registry entry.

--
Jim
| Hi;
| I have two seperate workbooks open and each running a macro that do
| different types of copy and pastespecial routines. By themselevs (eg.
when
| only one file is open and running) the macro runs fine. Each macro
prefroms
| a copy and pastespecial routine at different intervals. One runs every 60
| secs and the other runs every 15 secs.
|
| When i run both marcos with the files open and i step away i (not
| interacting with either file, etc.) I get a error routinely that reads
| "pastespecial of Range Class Failed Error 1004".
|
| Without dumping the code in here do you have any ideas what this could be
| caused by? The two macros confliciting somehow with clipboard, or thier
| timing is being conflicted?
|
| Thanks
| DaveM
 
D

DaveM

Thanks Jim......I understand what you mean by a flag (essentially a traffic
light) but i'm not sure how to implement from your ideas listed.....

I've listed an abridged version of the three macros that i run in each of
the two seperate workbooks along with some explaination. What would the code
look like that you mention and where in this would you suggest I place it?

Thanks in advance I appreciate the help...

DaveM

Sub StartIt() ‘This starts the copy macro timing interval
Application.OnTime Now, "UpDateSub"
End Sub

Sub StopIt() ‘This stops the copy macro timing interval
Application.OnTime mdNextTime, "UpDateSub", , False
End Sub

Sub UpDateSub() “This is a simple/abrigdged version of what the copy/paste
macro is doing….
……
…….
Copy various cells from one sheet and pastespecial just their values into a
2nd sheet w/in the workbook
………….
……………
Open a text file and append the new values from the pasted worksheet into
this text file….
Note each marco appends a different text file…another words the two macros
DON’t append data to a common txt file…they are different txt files for each
macro…
……..

Close the txt files and wait for next timing interval
……
…….
‘This code sets the timing interval for the macro.
‘As noted in my previous post one marco runs at 15 sec interval and the
other at 1 min.

mdNextTime = Now + TimeValue("00:01:00")
Application.OnTime mdNextTime, "UpdateSub"
……………
End Sub
 
J

Jim Rech

I don't have code for this but just before the macro copies it should check
the 'clipboard busy' flag (I'd use the registry GetSetting/SaveSetting]).
If it's busy then go into loop where you check the flag again every second
or so. When it's not busy, set the busy flag and do your copy/paste. Then
clear the busy flag.

There is the potential danger that a macro breaks before it clears the busy
flag so it's always busy. I would consider counting the number of times the
loop runs and if it's greater than some arbitrary safe number assume the
other macro broke and ignore the flag.

--
Jim
| Thanks Jim......I understand what you mean by a flag (essentially a
traffic
| light) but i'm not sure how to implement from your ideas listed.....
|
| I've listed an abridged version of the three macros that i run in each of
| the two seperate workbooks along with some explaination. What would the
code
| look like that you mention and where in this would you suggest I place it?
|
| Thanks in advance I appreciate the help...
|
| DaveM
|
| Sub StartIt() 'This starts the copy macro timing interval
| Application.OnTime Now, "UpDateSub"
| End Sub
|
| Sub StopIt() 'This stops the copy macro timing interval
| Application.OnTime mdNextTime, "UpDateSub", , False
| End Sub
|
| Sub UpDateSub() "This is a simple/abrigdged version of what the copy/paste
| macro is doing..
| ..
| ...
| Copy various cells from one sheet and pastespecial just their values into
a
| 2nd sheet w/in the workbook
| .....
| .....
| Open a text file and append the new values from the pasted worksheet into
| this text file..
| Note each marco appends a different text file.another words the two macros
| DON't append data to a common txt file.they are different txt files for
each
| macro.
| ....
|
| Close the txt files and wait for next timing interval
| ..
| ...
| 'This code sets the timing interval for the macro.
| 'As noted in my previous post one marco runs at 15 sec interval and the
| other at 1 min.
|
| mdNextTime = Now + TimeValue("00:01:00")
| Application.OnTime mdNextTime, "UpdateSub"
| .....
| End Sub
|
|
|
|
| "Jim Rech" wrote:
|
| > The clipboard is a shared resource and one macro using or clearing it
could
| > interfere with the other. You might consider setting a flag of some
sort
| > when a macro starts its copy and clearing it when done. The macro would
| > also have to check if the flag is already set before it does its copy.
A
| > flag could be a text file or an INI file entry or registry entry.
| >
| > --
| > Jim
| > | > | Hi;
| > | I have two seperate workbooks open and each running a macro that do
| > | different types of copy and pastespecial routines. By themselevs (eg.
| > when
| > | only one file is open and running) the macro runs fine. Each macro
| > prefroms
| > | a copy and pastespecial routine at different intervals. One runs
every 60
| > | secs and the other runs every 15 secs.
| > |
| > | When i run both marcos with the files open and i step away i (not
| > | interacting with either file, etc.) I get a error routinely that reads
| > | "pastespecial of Range Class Failed Error 1004".
| > |
| > | Without dumping the code in here do you have any ideas what this could
be
| > | caused by? The two macros confliciting somehow with clipboard, or
thier
| > | timing is being conflicted?
| > |
| > | Thanks
| > | DaveM
| >
| >
| >
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top