You don't need IE automation and HTML DOM parsing to extract this data. Instead, a web query is the simplest way, as long as you specify the correct parameters and values in the query string (the part of the URL after the ? character). Something like this:
Sub Get_Data()
Dim URL As String
URL = "http://www.bmreports.com/servlet/com.logica.neta.bwp_MarketIndexServlet?param0=2012-06-20¶m1=1&displayCsv=false"
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;" & URL, Destination:=Sheets("Sheet1").Range("A1"))
.Name = "market_index"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
That's just a web query generated by the macro recorder and I tweaked the code to declare the URL string. In this example I hard-coded the date (param0) and period (param1) values, but you will want to specify your own values from user inputs. Use Format function to format the input date as yyyy-mm-dd: Format(theDate, "yyyy-mm-dd").
Bookmarks