View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.programming
Atishoo Atishoo is offline
external usenet poster
 
Posts: 267
Default Request for Postal Codes

Hi Joel
Was wondering, how do you know how to refer to any particular item on a web
site in VBA?
In the example you gave in response to my question how do you know that the
output data is embeded in an object with tag name "table" or that the input
data is under tag name "form" etc!
I ask because I am looking at how I may do similar things with other web
sites eg how I might use a site like multi map to achieve the same results!
In Multi map the data goes into two input boxes but these do not appear to
be referred to as "form" in this example.
thanks John

"Joel" wrote:

If you told me is was for postal codes I would of givin you my US zipcode
macro which has a userform like the postal code. Enter 10001 to get NYC main
post office.

Sub GetZipCodes()

ZIPCODE = InputBox("Enter 5 digit zipcode : ")

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True

URL = "http://zip4.usps.com/zip4/citytown_zip.jsp"

'get web page
IE.Navigate2 URL
Do While IE.readyState < 4
DoEvents
Loop

Do While IE.busy = True
DoEvents
Loop
Set Form = IE.document.getElementsByTagname("Form")

Set zip5 = IE.document.getElementById("zip5")
zip5.Value = ZIPCODE

Form(0).submit
Do While IE.busy = True
DoEvents
Loop

Set Table = IE.document.getElementsByTagname("Table")
If Table(0).Rows(0).innertext = "" Then
MsgBox ("Invalid Zip code")
Else
Location = Table(0).Rows(2).innertext
End If
IE.Quit
MsgBox ("Zip code = " & ZIPCODE & " City/State = " & Location)


End Sub



"Stefi" wrote:

Hi Joel,

This is the real answer to my question posted some days ago. Maybe you
remember, you sent a sub to me, but that didn't cover exactly my question.

Thanks,
Stefi


€˛Joel€¯ ezt Ć*rta:

This request disappeared from the postings. do'nt know why. Here is the
solution

Sub Private Commandbutton1_Click()

Postcode = InputBox("Enter PostCode: ")

Postcode2 = InputBox("Enter 2nd PostCode: ")


Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True

URL = _
"http://www.postcode.org.uk/country/uk/_postcode-distance-calculator.asp"
IE.Navigate2 URL

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

Set MyForm = IE.document.getElementsByTagname("Form")
Set inputform = MyForm.Item(0)

Set Postcodebox = inputform.Item(0)
Postcodebox.Value = Postcode

Set Postcodebox2 = inputform.Item(1)
Postcodebox2.Value = Postcode2

Set POSTCODEbutton = inputform.Item(2)
POSTCODEbutton.Click

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


Set Table = IE.document.getElementsByTagname("Table")
Set DistanceTable = Table.Item(3)

Set DistanceRow = DistanceTable.Rows(2)
distance = Val(Trim(DistanceRow.Cells(2).innertext))
With Worksheets("sheet1")
.Range("A1").Value = distance
End With

IE.Quit
End Sub