3

I'm trying to fix an old macro working with a function GetData that retrieve the whole page in the response string. (Can't give the real URL here)

Function getDataFor(tva As String) As String

  ' Early binding, set Tools - Reference - Microsoft XML,v6.0

  Dim oDOM As New MSXML2.DOMDocument30
  Dim oNodeList As IXMLDOMNodeList
  Dim oReq As MSXML2.XMLHTTP
  Set oReq = New MSXML2.XMLHTTP

  oReq.Open "GET", "https://xxxxxxx.asp?name=" & tva, False
  oReq.send

  While oReq.readyState <> 4

  Wend

  Dim response As String
  Dim name As String
  Dim hasLoginBelspo As String
  response = oReq.responseText

  Dim token1 As Long
  Dim token2 As Long
  token1 = InStr(response, "company.name=")
  token2 = InStr(response, "company.address=")
  On Error GoTo Proceed
  name = Mid(response, token1 + 14, token2 - (token1 + 16))

  On Error GoTo 0
  token1 = InStr(response, "parent.SetLoginInfo")
  hasLoginBelspo = Replace(Mid(response, token1 + 28, 5), ",", "")
  GoTo Proceed2
Proceed:
  name = ""
  hasLoginBelspo = ""
Proceed2:
  getDataFor = name & "," & hasLoginBelspo

End Function

The concerned page is loaded and the needed data is written between javascript tags:

Here is a copy of what I can find in the source page when I paste the URL in a browser.

<script language="javascript">

var company=new Object();company.number="xxx";company.name="xxx";company.address="xxx";company.zip="xxx";company.city="xxx";parent.SetLoginInfo(company,false,true,"xxx","");

</script>

All the data replaced by xxx is what I need. In the browser, I get it, but with the macro, sometimes those xxx data are empty. It should be because the library used to load the javascript may not be the good one (MSXML2).

Do you have an idea of what I need the change, or what kind of library should I use to be sure the javascript data will be catch?

Thanks a lot

Jonathan
  • 97
  • 7

0 Answers0