From: Jack Clift on
Dear Sirs,

I am trying to download a csv file from the internet using
the MSHTML model and can successfully obtain the data to a
HTMLDocument variable using the following.

Dim objMSHTML As New MSHTML.HTMLDocument
Dim objDocument As MSHTML.HTMLDocument

Set objDocument = objMSHTML.createDocumentFromUrl
(txtURL.Text, vbNullString)

where txtURL.Text
= "http://www.a_web_site.com/download/data.csv"

What I cannot do is extract the csv data from the
variable, as it does not appear to be associated with any
node / element etc.

I know the objDocument does contain the data as I can
check the size of the variable to which it returns a
largeish value

I am really quite lost with all this - I do not really
understand how all this works and have been trying to find
an online resource that explains it in lay terms, however
everything that I have located to date goes way over my
head!

Hoping someone can assist

Regards

Jack
From: GysdeJongh on
Hi,
have you seen this :

From: "Dave" <NoEmail(a)company.com>
References: <AF38F843-798B-438C-9A85-24B4E6CEED73(a)microsoft.com>
Subject: Re: Download file from URL with password
Date: Tue, 8 Feb 2005 13:58:40 -0500
Newsgroups: microsoft.public.excel.programming

If you have a reference to MSHTML than have you tried already :

Dim myPage As HTMLDocument
'sBuffer string which holds the HTML
Dim sBuffer As String
'Capture all the text in the storage a buffer :
'
sBuffer = myPage.body.innerHTML

Than you could try to write the srting to Excel

hth
Gys



"Jack Clift" <anonymous(a)discussions.microsoft.com> wrote in message
news:02e101c51638$11120360$a401280a(a)phx.gbl...
> Dear Sirs,
>
> I am trying to download a csv file from the internet using
> the MSHTML model and can successfully obtain the data to a
> HTMLDocument variable using the following.
>
> Dim objMSHTML As New MSHTML.HTMLDocument
> Dim objDocument As MSHTML.HTMLDocument
>
> Set objDocument = objMSHTML.createDocumentFromUrl
> (txtURL.Text, vbNullString)
>
> where txtURL.Text
> = "http://www.a_web_site.com/download/data.csv"
>
> What I cannot do is extract the csv data from the
> variable, as it does not appear to be associated with any
> node / element etc.
>
> I know the objDocument does contain the data as I can
> check the size of the variable to which it returns a
> largeish value
>
> I am really quite lost with all this - I do not really
> understand how all this works and have been trying to find
> an online resource that explains it in lay terms, however
> everything that I have located to date goes way over my
> head!
>
> Hoping someone can assist
>
> Regards
>
> Jack

From: Jack Clift on
the code:

sBuffer = myPage.body.innerHTML

will only work if the data is 'attached' to a 'body'
element, which it is not in my case.

Any other ideas?


>-----Original Message-----
>Hi,
>have you seen this :
>
>From: "Dave" <NoEmail(a)company.com>
>References: <AF38F843-798B-438C-9A85-
24B4E6CEED73(a)microsoft.com>
>Subject: Re: Download file from URL with password
>Date: Tue, 8 Feb 2005 13:58:40 -0500
>Newsgroups: microsoft.public.excel.programming
>
>If you have a reference to MSHTML than have you tried
already :
>
>Dim myPage As HTMLDocument
>'sBuffer string which holds the HTML
>Dim sBuffer As String
>'Capture all the text in the storage a buffer :
>'
>sBuffer = myPage.body.innerHTML
>
>Than you could try to write the srting to Excel
>
>hth
>Gys
>
>
>
>"Jack Clift" <anonymous(a)discussions.microsoft.com> wrote
in message
>news:02e101c51638$11120360$a401280a(a)phx.gbl...
>> Dear Sirs,
>>
>> I am trying to download a csv file from the internet
using
>> the MSHTML model and can successfully obtain the data
to a
>> HTMLDocument variable using the following.
>>
>> Dim objMSHTML As New MSHTML.HTMLDocument
>> Dim objDocument As MSHTML.HTMLDocument
>>
>> Set objDocument = objMSHTML.createDocumentFromUrl
>> (txtURL.Text, vbNullString)
>>
>> where txtURL.Text
>> = "http://www.a_web_site.com/download/data.csv"
>>
>> What I cannot do is extract the csv data from the
>> variable, as it does not appear to be associated with
any
>> node / element etc.
>>
>> I know the objDocument does contain the data as I can
>> check the size of the variable to which it returns a
>> largeish value
>>
>> I am really quite lost with all this - I do not really
>> understand how all this works and have been trying to
find
>> an online resource that explains it in lay terms,
however
>> everything that I have located to date goes way over my
>> head!
>>
>> Hoping someone can assist
>>
>> Regards
>>
>> Jack
>
>.
>
From: Tim Williams on
Try this - add reference to MSXML and ADO libraries.

Tim.

Sub SaveFileFrom Web(sURL As String, sPath As String)
Dim oXHTTP As New MSXML2.XMLHTTP
Dim oStream As New ADODB.Stream

Application.StatusBar = "Fetching " & sURL & " as " & sPath

oXHTTP.Open "GET", sURL, False
oXHTTP.send

with oStream
.Type = adTypeBinary
.Open
.Write oXHTTP.responseBody
.SaveToFile sPath, adSaveCreateOverWrite
.Close
end with

Set oXHTTP = Nothing
Set oStream = Nothing

End Sub




"Jack Clift" <anonymous(a)discussions.microsoft.com> wrote in message
news:07aa01c517b4$6ebe6210$a401280a(a)phx.gbl...
> the code:
>
> sBuffer = myPage.body.innerHTML
>
> will only work if the data is 'attached' to a 'body'
> element, which it is not in my case.
>
> Any other ideas?
>
>
>>-----Original Message-----
>>Hi,
>>have you seen this :
>>
>>From: "Dave" <NoEmail(a)company.com>
>>References: <AF38F843-798B-438C-9A85-
> 24B4E6CEED73(a)microsoft.com>
>>Subject: Re: Download file from URL with password
>>Date: Tue, 8 Feb 2005 13:58:40 -0500
>>Newsgroups: microsoft.public.excel.programming
>>
>>If you have a reference to MSHTML than have you tried
> already :
>>
>>Dim myPage As HTMLDocument
>>'sBuffer string which holds the HTML
>>Dim sBuffer As String
>>'Capture all the text in the storage a buffer :
>>'
>>sBuffer = myPage.body.innerHTML
>>
>>Than you could try to write the srting to Excel
>>
>>hth
>>Gys
>>
>>
>>
>>"Jack Clift" <anonymous(a)discussions.microsoft.com> wrote
> in message
>>news:02e101c51638$11120360$a401280a(a)phx.gbl...
>>> Dear Sirs,
>>>
>>> I am trying to download a csv file from the internet
> using
>>> the MSHTML model and can successfully obtain the data
> to a
>>> HTMLDocument variable using the following.
>>>
>>> Dim objMSHTML As New MSHTML.HTMLDocument
>>> Dim objDocument As MSHTML.HTMLDocument
>>>
>>> Set objDocument = objMSHTML.createDocumentFromUrl
>>> (txtURL.Text, vbNullString)
>>>
>>> where txtURL.Text
>>> = "http://www.a_web_site.com/download/data.csv"
>>>
>>> What I cannot do is extract the csv data from the
>>> variable, as it does not appear to be associated with
> any
>>> node / element etc.
>>>
>>> I know the objDocument does contain the data as I can
>>> check the size of the variable to which it returns a
>>> largeish value
>>>
>>> I am really quite lost with all this - I do not really
>>> understand how all this works and have been trying to
> find
>>> an online resource that explains it in lay terms,
> however
>>> everything that I have located to date goes way over my
>>> head!
>>>
>>> Hoping someone can assist
>>>
>>> Regards
>>>
>>> Jack
>>
>>.
>>


From: Stephen Bullen on
Hi Jack,

> I know the objDocument does contain the data as I can
> check the size of the variable to which it returns a
> largeish value

The easiest way to find your way around the object model is to step
through the code with the Locals window showing. Once you've opened the
URL and allowed the content to download, expand the objDocument node to
see it's contents. Hopefully, one of the properties will expose your
csv data.

Regards

Stephen Bullen
Microsoft MVP - Excel
www.oaltd.co.uk