Soumettre le formulaire et récupérer des données à partir du site web VBA

Je suis en train de récupérer des données à partir de ce site à l'aide de VBA dans Excel. Ce que j'ai essayé de faire et ce qui a fonctionné a l'aide d'internet explorer objet comme ceci:

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = False
IE.Navigate "http://zertifikate.finanztreff.de"
IE.document.getElementById("USFsecuritySearchDropDown").Value = "DE000BP5TBQ2"
IE.document.getElementById("USFsecuritySearchDropDownForm").submit

Do While IE.Busy Or IE.readyState <> 4  'wait until page is loaded
    Application.Wait DateAdd("s", 1, Now)
Loop
MsgBox IE.document.getElementById("BP5TBQ~30~5").innerHTML

Cependant cela a fonctionné très lent et n'obtiennent pas toujours les résultats escomptés. Je soupçonne que, parfois, il n'attendez pas jusqu'à ce que la page web a été chargé. J'ai essayé de chercher des réponses et j'ai trouvé cette réponse sur stackoverflow. Maintenant, je suis à essayer de comprendre comment réécrire mon macro à l'aide de MSXML2 et MSHTML. Jusqu'à présent, j'ai été capable de le faire :

Dim IE As MSXML2.XMLHTTP60
Set IE = New MSXML2.XMLHTTP60

IE.Open "GET", "http://zertifikate.finanztreff.de", False
IE.send
While IE.ReadyState <> 4
    DoEvents
Wend

Dim HTMLDoc As MSHTML.HTMLDocument
Dim htmlBody As MSHTML.htmlBody

Set HTMLDoc = New MSHTML.HTMLDocument
Set htmlBody = HTMLDoc.body
htmlBody.innerHTML = IE.responseText
HTMLDoc.getElementById("USFsecuritySearchDropDown").Value = "DE000BP5TBQ2"

s'il vous plaît, pourquoi HTMLDoc a la méthode getElementById et htmlBody ne l'est pas ? Comment pourrais-je soumettre le formulaire "USFsecuritySearchDropDownForm". J'ai essayé ceci :

 HTMLDoc.getElementById("USFsecuritySearchDropDownForm").submit

mais elle doit toujours ouvrir une nouvelle fenêtre de mon navigateur par défaut, je voudrais l'avoir caché.
Il me semble que je suis absent de différence entre XMLHTTP60 et MSHTML.HTMLDocument.
Si vous pouviez s'il vous plaît m'aider ou au moins me montrer où je peux trouver cette information, je serais vraiment reconnaissant...

OriginalL'auteur Simon | 2013-08-11