View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.programming
[email protected] brianatee@hotmail.com is offline
external usenet poster
 
Posts: 12
Default ie Command to Wait for "File Download" and "Save As" windows

Thanks again for the help. Below is the code with the problems flagged
in comments. I have gotten through the first with a simple wait time,
but the speed of my connection varies greatly in terms of the wait at
Problems 2 and 3. I would like to avoid any other Application.Wait
(Now + TimeValue()) functions if possible.

______________________
Sub Basis()

Dim ie As Object
Dim nFile As Integer

Set ie = CreateObject("InternetExplorer.Application")

ie.Visible = True
ie.Navigate "http://www.nymex.com/settle_fut_otc.aspx"

Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop

'Agrees with the Disclaimer form
If ie.LocationURL Like "*disclaimer*" Then
'Selects 'I agree'
ie.Document.Links(4).Click

'submits the form
ie.Document.getElementById("aspnetForm").submit

End If

'[PROBLEM 1 - wait time]
Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop
'Readystate not enough, needed to add wait time
Application.Wait (Now + TimeValue("0:00:03"))

'clicks on "Download all available..."
ie.Document.all.Item("ctl00_btnExport").Click

'Saves the file to default location with default name
'[PROBLEM 2 - Wait for File Download Window]
Do While ie.ReadyState = 4
Loop

SendKeys "{LEFT}"
Application.Wait (Now + TimeValue("0:00:001"))
SendKeys "{ENTER}"

'[PROBLEM 3 - Wait for Save As Window]
Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop
SendKeys "{ENTER}"

Do While Dir("[FILE LOCATION]") = ""
Loop
Do While FileLen("FILE LOCATION") = 0
Loop

ie.Quit

Workbooks.Open Filename:="FILE LOCATION", _

End Sub


On Jan 8, 1:54 pm, JP wrote:
Can you post your code?

--JP

On Jan 8, 4:47 pm, wrote:

JP,


Thanks for the response. I have tried using readystate commands with
only patchy success and haven't been able to get them to to the trick
in this case. I am wondering if there is another way to make the macro
wait for the window to appear. Some sort of ActiveWindow command or
something to tell the macro to click "Save" in the donwload prompt and
the Save As window???


Any other ideas?


On Jan 8, 11:21 am, JP wrote:


You want to check the "readystate" of the IE window, here is an
example.


Dim appIE As InternetExplorer
Dim sURL As String


sURL = "http://www.mapquest.com/"


Set appIE = New InternetExplorer
appIE.navigate sURL


Do Until appIE.readyState = READYSTATE_COMPLETE
Loop


HTH,
JP


On Jan 8, 2:15 pm, wrote:


I am importing some web data into excel. The website is .aspx so a
direct URL is not an option. Does anyone know of a command to make ie
wait until the File Download window and subsequently the Save As
window load before executing SendKeys?- Hide quoted text -


- Show quoted text -