Thie code below will do the Reuters site.

I added an important piece that I left out of the Google code. You need to clear your cache before each attempt to pull the quote, or you'll ge the same answer each time. by default it'lluse the cached version of the last itme you pulled the data.

The DelteURLCacheEntry function does this for you. Notice the extra Public Function and the insetion of one line of code after establishing the URL. You can put that same line of code in the getGooglePrice function.

[vba]Public Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" _
Alias "DeleteUrlCacheEntryA" _
(ByVal lpszUrlName As String) As Long

Public Function getReutersPrice(symbol As String) As Variant
Dim xmlhttp As Object
Dim strURL As String
Dim CompanyID As String
Dim x As String
Dim sSearch As String, myDIV As String, myPrice As String

strURL = "http://www.reuters.com/finance/stocks/overview?symbol=" & symbol 'NESN.VX"
DeleteUrlCacheEntry (strURL)
Set xmlhttp = CreateObject("msxml2.xmlhttp")
With xmlhttp
.Open "get", strURL, False
.send
x = .responsetext
End With
Set xmlhttp = Nothing
'find sectionQuoteDetail Div
'eg:
'<div id="headerQuoteContainer">
' <div class="sectionQuote nasdaqChange">
' <div class="sectionQuoteDetail">
' <span class="nasdaqChangeHeader">NESN.VX on Virt-X Level 1</span>
' <br class="clear"><br class="clear">
' <span style="font-size: 23px;">
' 53.40</span><span>CHF</span><br />
' <span class="nasdaqChangeTime">10:08am EDT</span>
' </div>
sSearch = "sectionQuoteDetail"
myDIV = Mid(x, InStr(1, x, sSearch) + Len(sSearch))
myDIV = Trim(Mid(myDIV, 1, InStr(1, myDIV, "</div>") - 1))
'Split out the Spans
y = Split(myDIV, "</span>")
'y(0) = Name
'y(1) = Price
'y(2) = Time

'clean up the price
myPrice = Mid(y(1), InStrRev(y(1), ">") + 1)
myPrice = Replace(myPrice, Chr(13), "")
myPrice = Trim(Replace(myPrice, Chr(9), ""))

getReutersPrice = myPrice

End Function[/vba]