+ Reply to Thread
Results 1 to 2 of 2

Thread: Code is running inconsistently for retrieving data from internet

  1. #1
    Registered User
    Join Date
    12-16-2011
    Location
    Chicago
    MS-Off Ver
    Excel 2010 and Mac Excel 2011
    Posts
    53

    Code is running inconsistently for retrieving data from internet

    I'm using Excel 2010 to retrieve Mutual Fund information.

    Let's say I enter ticker symbols for 5 mutual funds.
    7 out of 10 times it'll be perfect.

    Where it goofs up is inconsistent. Examples:
    • Of the 5 tickers, it'll grab the first 2 (or 3) Maximum Sales Loads, miss the last 3 (or 2), then go on and get all 5 fund names and all 5 current quotes
    • It'll grab all 5 Sales Loads, the quotes and none of the names

    Maybe an internet page is still loading but the code has already moved on?
    I also realize that I have no error-handling notifications built in to let a user know what's going on.

    How can this code be tightened up?



    Sub LoopAllSymbols_RetrieveDataCZY()
    
    '   Local Variables
        Dim rngLookUpSym        As Range, rngQuerySym       As Range, rngQuerySymCo         As Range
            Dim rngQuerySymData As Range
        Dim qryTableFunds          As QueryTable
        Dim FS As Worksheet
        Dim QS As Worksheet
    
        Set FS = Worksheets("Fund Symbols")
        Set QS = Worksheets("Web Query Page")
    
    
    'Unprotect Sheets
        FS.Unprotect
        QS.Unprotect
        
    '   Clear old contents
        FS.Range("B2:F100").ClearContents
        
    '   Step 1 : Set Data Ranges for Sale Load
        Set rngLookUpSym = Worksheets("Fund Symbols").Range("A2")
        Set rngQuerySym = Worksheets("Web Query Page").Range("A1")
        Set rngQuerySymCo = Worksheets("Web Query Page").Range("B7")
        'Set rngQuerySymData = Worksheets("Web Query Page").Range("A5").Range("E1:P1")
        Set qryTableFunds = ThisWorkbook.Worksheets("Web Query Page").QueryTables(1)
    
        On Error Resume Next
    '   Step 2 : Loop through list of Funds and retrieve Sales Load
        Do While rngLookUpSym <> ""
            rngQuerySym = rngLookUpSym
        With qryTableFunds
            .Connection = _
            "URL;http://finance.yahoo.com/q/pr?s=" & rngQuerySym & "+profile"
             .WebSelectionType = xlSpecifiedTables
            .WebFormatting = xlWebFormattingAll
             .WebTables = "36"
            .WebPreFormattedTextToColumns = True
            .WebConsecutiveDelimitersAsOne = True
            .WebSingleBlockTextImport = False
            .WebDisableDateRecognition = False
            .Refresh BackgroundQuery:=False
        End With
            rngLookUpSym.Range("D1") = rngQuerySymCo
            'rngLookUpSym.Range("E1:P1") = rngQuerySymData.Value
            Set rngLookUpSym = rngLookUpSym.Offset(1, 0)
        Loop
    
    '   Step 3 : Set Data Ranges for Company Names
        Set rngLookUpSym = Worksheets("Fund Symbols").Range("A2")
        Set rngQuerySym = Worksheets("Web Query Page").Range("A1")
        Set rngQuerySymCo = Worksheets("Web Query Page").Range("A5")
        Set rngQuerySymData = Worksheets("Web Query Page").Range("A5").Range("D1")
        Set qryTableFunds = ThisWorkbook.Worksheets("Web Query Page").QueryTables(1)
    
    '   Step 4 : Loop through list of mutual fund symbols and retrieve Names
        Do While rngLookUpSym <> ""
            rngQuerySym = rngLookUpSym
        With qryTableFunds
            .Connection = _
            "URL;http://moneycentral.msn.com/investor/external/excel/quotes.asp?SYMBOL=" & rngQuerySym
            .WebSelectionType = xlEntirePage
            .WebFormatting = xlWebFormattingAll
            .WebPreFormattedTextToColumns = True
            .WebConsecutiveDelimitersAsOne = True
            .WebSingleBlockTextImport = False
            .WebDisableDateRecognition = False
            .Refresh BackgroundQuery:=False
        End With
            rngLookUpSym.Range("B1") = rngQuerySymCo
            rngQuerySymData.Copy Destination:=rngLookUpSym.Range("F1")
            'rngLookUpSym.Range("F1:K1") = rngQuerySymData.Value
            Set rngLookUpSym = rngLookUpSym.Offset(1, 0)
        Loop
    
    '   Step 5 : Set Data Ranges for Quotes
        Set rngLookUpSym = Worksheets("Fund Symbols").Range("A2")
        Set rngQuerySym = Worksheets("Web Query Page").Range("A1")
        Set rngQuerySymCo = Worksheets("Web Query Page").Range("D5")
        Set rngQuerySymData = Worksheets("Web Query Page").Range("D5").Range("A1")
        Set qryTableFunds = ThisWorkbook.Worksheets("Web Query Page").QueryTables(1)
    
    
    '   Step 6 : Loop through list of mutual fund symbols and retrieve Quotes
        Do While rngLookUpSym <> ""
            rngQuerySym = rngLookUpSym
        With qryTableFunds
            .Connection = _
            "URL;http://moneycentral.msn.com/investor/external/excel/quotes.asp?SYMBOL=" & rngQuerySym
            .WebSelectionType = xlEntirePage
            .WebFormatting = xlWebFormattingNone
            .WebPreFormattedTextToColumns = True
            .WebConsecutiveDelimitersAsOne = True
            .WebSingleBlockTextImport = False
            .WebDisableDateRecognition = False
            .Refresh BackgroundQuery:=False
        End With
            rngLookUpSym.Range("F1") = rngQuerySymCo
            'rngQuerySymData.Copy Destination:=rngLookUpSym.Range("F1")
            rngLookUpSym.Range("F1") = rngQuerySymData.Value
            Set rngLookUpSym = rngLookUpSym.Offset(1, 0)
        Loop
    
        rngLookUpSym.Range("L9") = Format(Date, "MM-dd-yy")
        rngLookUpSym.Range("L10") = Format(Time, "[$-409]h:mm AM/PM;@")
    
        FS.Protect
        QS.Protect
        
    
    End Sub

  2. #2
    Registered User
    Join Date
    12-16-2011
    Location
    Chicago
    MS-Off Ver
    Excel 2010 and Mac Excel 2011
    Posts
    53

    Re: Code is running inconsistently for retrieving data from internet

    I've just discovered that 3 people tried to run this macro and can't get it to run. But, for me, it runs inconsistently.

    Help is appreciated in determining what's wrong with this coding.

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.2.0