nachdem mir Anton schon super dabei geholfen hatte, den Internetexplorer zu öffen, Onvista zu laden und auf deren Seite ein Formular auszufüllen, war ich eigentlich der Meinung gewesen, den Datenimport auch selbst darstellen zu können. Pustekuchen.
Eigentlich funktioniert es mit dem folgenden Programm:
Sub Auswahl()
Dim IEApp As Object
Set IEApp = CreateObject("InternetExplorer.Application")
'Dim Basiswert, Typ, Emittent, Lfz_von, Lfz_bis, Cap_von, Cap_bis
Dim objShell As Object, neu As Worksheet
Dim win As Object, IEDoc As Object
On Error GoTo Fehler1
'Basiswert = [Auswahl!Basis]
'Typ = [Auswahl!Typ]
'Emittent = [Auswahl!Emittenten]
'Lfz_von = [Auswahl!Lfz_von]
'Lfz_bis = [Auswahl!Lfz_bis]
'Cap_von = [Auswahl!Cap_von]
'Cap_bis = [Auswahl!Cap_bis]
IEApp.Navigate "http://www.onvista.de/zertifikate/suche/vergleich.html"
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.Document.ReadyState = "complete"
IEApp.Document.getelementbyid("formular[PREDEF_UL_ID]").Value = "1"
IEApp.Document.getelementbyid("formular[CAT_ID]").Value = "13"
IEApp.Document.getelementbyid("formular[ID_GROUP_ISSUER]").Value = "53148"
IEApp.Document.getelementbyid("DATE_START").Value = "01.08.12"
IEApp.Document.getelementbyid("DATE_END").Value = "31.08.12"
IEApp.Document.getelementbyid("start_short").Click
Do: Loop Until IEApp.Document.ReadyState = "complete"
IEApp.Document.getelementbyid("ext").Click
Do: Loop Until IEApp.Document.ReadyState = "complete"
IEApp.Document.getelementbyid("formular[CAP_ABS_MIN]").Value = "5000"
IEApp.Document.getelementbyid("formular[CAP_ABS_MAX]").Value = "5500"
IEApp.Document.getelementbyid("start_long").Click
IEApp.Visible = True
Set objShell = CreateObject("Shell.Application")
For Each win In objShell.Windows
Stop
Set IEDoc = win.Document
Set neu = Worksheets.Add(After:=Worksheets(Worksheets.Count))
IEDoc.execCommand ("SelectAll")
IEDoc.execCommand ("Copy")
neu.Paste
Next
Set objShell = Nothing
Fehler1:
IEApp.Quit
Set IEApp = Nothing
End Sub
Jedenfalls funktioniert es richtig, wenn ich den einen Programmstop einfüge und das Programm mit F5 weiterlaufen lasse. Dann finde ich in meiner Excel-Seite genau die gewünschte Auswahl. Lasse ich das Programm aber ohne Stop durchlaufen, sieht das Ergebnis ganz anders aus. Die daraus resultierende Liste von Zertifikaten könnte ich zwar auch auswerten, aber ich würde schon gerne wissen, wo hier mein Fehler liegt.Vielen Dank wie üblich an alle Helfer.
Gruß
Karsten