[navy]Function[/navy] GetWebTable() [navy]As Boolean[/navy]
[navy]On Error GoTo[/navy] GetWebTable_Error
[navy]Dim[/navy] objIE [navy]As Object[/navy]
[navy]Dim[/navy] varTables, varTable
[navy]Dim[/navy] varRows, varRow
[navy]Dim[/navy] varCells, varCell
[navy]Dim[/navy] strBuffer [navy]As String[/navy]
[green]'Set the return value[/green]
GetWebTable = [navy]True[/navy]
[green]'Spawn Internet Explorer[/green]
[navy]Set[/navy] objIE = CreateObject("InternetExplorer.Application")
[navy]DoEvents[/navy]
[green]'Remove all the controls since we Don't want the user to'monkey with it[/green]
[navy]With[/navy] objIE
.AddressBar = [navy]False[/navy]
.StatusBar = [navy]False[/navy]
.MenuBar = [navy]False[/navy]
.Toolbar = 0
.Visible = [navy]True[/navy]
.Navigate "[b][URL unfurl="true"]http://finance.yahoo.com/q/hp?s=ALU[/URL][/b]"
[navy]End With[/navy]
[green]'let IE do it's thing and Settle before we touch it[/green]
[navy]While[/navy] objIE.Busy
[green]'Do Nothing[/green]
[navy]Wend
While[/navy] objIE.Document.ReadyState <> "complete"
[green]'Again Do Nothing[/green]
[navy]Wend[/navy]
[navy]Set[/navy] varTables = objIE.Document.All.tags("TABLE")
[navy]For Each[/navy] varTable [navy]In[/navy] varTables
[navy]Set[/navy] varRows = varTable.Rows
[navy]For Each[/navy] varRow [navy]In[/navy] varRows
[navy]Set[/navy] varCells = varRow.Cells
[navy]If[/navy] varCells.Length > 2 [navy]Then[/navy]
[navy]For Each[/navy] varCell [navy]In[/navy] varCells
[b][green]'Test the current cell for a value[/green]
[navy]If[/navy] varCell.InnerText = "Open" [navy]Then[/navy]
[green]'The value was found so output the table and exit[/green]
WriteHTMLTableToFile varTable.InnerHTML
[navy]GoTo[/navy] Cleanup
[navy]End If[/navy][/b]
[navy]Next[/navy] varCell
[navy]End If[/navy]
[navy]Next[/navy] varRow
[navy]Next[/navy] varTable
Cleanup:
objIE.Quit
[navy]Set[/navy] varCell = [navy]Nothing[/navy]
[navy]Set[/navy] varCells = [navy]Nothing[/navy]
[navy]Set[/navy] varRow = [navy]Nothing[/navy]
[navy]Set[/navy] varRows = [navy]Nothing[/navy]
[navy]Set[/navy] varTable = [navy]Nothing[/navy]
[navy]Set[/navy] varTables = [navy]Nothing[/navy]
[navy]Set[/navy] objIE = [navy]Nothing[/navy]
[navy]Exit Function[/navy]
GetWebTable_Error:
[navy]Select Case[/navy] Err.Number
[navy]Case[/navy] 0
[navy]Case Else[/navy]
[navy]Debug.Print[/navy] Err.Number, Err.Description
GetWebTable = [navy]False[/navy]
[navy]Stop[/navy]
[navy]End Select[/navy]
[navy]End Function[/navy]
[navy]Private Sub[/navy] WriteHTMLTableToFile(outerHTML [navy]As[/navy] String)
[navy]On Error GoTo[/navy] WriteHTMLTableToFile_Error
[green]'The following is a temporary directory used the cache the web page[/green]
[navy]Const[/navy] cWebTempDirectory [navy]As String[/navy] = "C:\"
[navy]Dim[/navy] intFile [navy]As Integer[/navy]
[green]'Get a file number and open the file we will dump the webpage Into[/green]
intFile = FreeFile
[navy]Open[/navy] cWebTempDirectory & "\WebOutput.htm" [navy]For Output As[/navy] #intFile
[green]'This will write the data To file using the HTML passed In[/green]
[green]'Notice the opening and closing page tags[/green]
[navy]Print[/navy] #intFile, "<HTML><BODY><TABLE>"
[navy]Print[/navy] #intFile, outerHTML
[navy]Print[/navy] #intFile, "</TABLE></BODY></HTML>"
Cleanup:
[navy]Close[/navy] #intFile
[navy]Exit Sub[/navy]
WriteHTMLTableToFile_Error:
[navy]Select Case[/navy] Err.Number
[navy]Case[/navy] 76
[green]'temp directiory Does not exist so create it[/green]
VBA.MkDir cWebTempDirectory
[navy]Resume[/navy]
[navy]Case Else[/navy]
Debug.Print Err.Number, Err.Description
[navy]Stop[/navy]
[navy]End Select[/navy]
[navy]End Sub[/navy]