Run time error when accessing Internet using VBA

M

musicgold

Hi,

Please refer to the following code. This code works fine on my office machine,
but does not work on my laptop and home machine. All three machines have
Excel 2003, SP3, and MS XP.

When I run the code on my laptop, the macro stops at the line : BUSY and the
following error message is displayed.

Runtime error -2147023170, Automation error, The remote procedure call failed.


My guess is that the error has something to do with the way I have defined
the IE object.
I tried changing the Dim IE As New SHDocVw.InternetExplorer declaration to
Dim IE as Object and Dim IE as InternetExplorer, but the error did not go
away.


Code:
Dim IE As New SHDocVw.InternetExplorer   '***
Dim URL As String
Dim Ext As String
Dim ocell As Range
Dim file_loc As String
Dim ResultDIV As HTMLDivElement, AllResultsDIV As HTMLDivElement,
OneResultDIV As HTMLDivElement
Dim message As String
Dim htmlDoc As MSHTML.HTMLDocument
Dim htmlInput As MSHTML.HTMLInputElement
Dim htmlColl As MSHTML.IHTMLElementCollection
Dim counter As Integer
Dim DLd As Boolean

file_loc = "C:\newfolder\"

Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = 1
.Navigate "http://www.fxstreet.com/forum/showthread.php?t=2910"


Do While .Busy: DoEvents: Loop   ' runtime error occurs here or on the
next line
Do While .readyState <> 4: DoEvents: Loop

...

Thanks,

MG
 
J

Joel

You need to wiat for both readystate and busy. It is probably runs at
different speed on different machines and will very depending on the version
of Internet exlporer on you r machines.


from

Do While .Busy: DoEvents: Loop ' runtime error occurs here or on the
next line
Do While .readyState <> 4: DoEvents: Loop



to

Do While .readyState <> 4 Or .busy = True
DoEvents
Loop

Do While .Busy: DoEvents: Loop ' runtime error occurs here or on the
next line
Do While .readyState <> 4: DoEvents: Loop
 
M

musicgold via OfficeKB.com

Joel,

Thanks. I used the following code in my macro but still got the same error.
Now the error occurs at the combined condition statement.

Code:
Do While .readyState <> 4 Or .Busy = True: DoEvents: Loop

Do While .Busy: DoEvents: Loop
Do While .readyState <> 4: DoEvents: Loop
 
J

Joel

try this. I don't know why you have the colon in the statement. It is not
needed.

Dim IE As New SHDocVw.InternetExplorer '***
Dim URL As String
Dim Ext As String
Dim ocell As Range
Dim file_loc As String
Dim ResultDIV As HTMLDivElement, AllResultsDIV As HTMLDivElement,
OneResultDIV As HTMLDivElement
Dim message As String
Dim htmlDoc As MSHTML.HTMLDocument
Dim htmlInput As MSHTML.HTMLInputElement
Dim htmlColl As MSHTML.IHTMLElementCollection
Dim counter As Integer
Dim DLd As Boolean

file_loc = "C:\newfolder\"

Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = 1
.Navigate "http://www.fxstreet.com/forum/showthread.php?t=2910"


Do While .readyState <> 4 Or .busy = True
DoEvents
Loop
 
M

musicgold via OfficeKB.com

I have been able to resolve the problem at least for one of my machines.

In the machine with IE7, when I disabled the protected mode of IE7, the code
started working.
(Tools >> Internet Options >> security tab >> tick button - "Enable protected
mode")

I am still trying to solve the problem for the machine with IE6.

MG.
 

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