Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1268to1272
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datemimport aus dem Internet Teil II

Datemimport aus dem Internet Teil II
Karsten
Hallo,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Datemimport aus dem Internet Teil II
10.07.2012 17:06:04
Anton
Hallo Karsten,
probier sowas:
Sub Auswahl1()
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"
Set basis = IEApp.Document.getelementbyid("formular[PREDEF_UL_ID]")
For Each all In basis
If all.innertext = "DAX" Then basis.selectedindex = all.Index: Exit For
Next
Set typ = IEApp.Document.getelementbyid("formular[CAT_ID]")
For Each all In typ
If all.innertext = "Discount-Zertifikate" Then typ.selectedindex = all.Index: Exit For
Next
Set Emittent = IEApp.Document.getelementbyid("formular[ID_GROUP_ISSUER]")
For Each all In Emittent
If all.innertext = "Deutsche Bank" Then Emittent.selectedindex = all.Index: Exit For
Next
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 = False 'True
Do: Loop Until IEApp.Document.ReadyState = "complete"
zeile = 1
Set neu = Worksheets.Add(After:=Worksheets(Worksheets.Count))
For Each all In IEApp.Document.all
If all.classname = "hgrau2 hr" Or all.classname = " hr" Then
spalte = 1
For Each td In all.all
If td.nodename = "TD" Then
neu.Cells(zeile, spalte) = td.innertext
spalte = spalte + 1
End If
Next
zeile = zeile + 1
End If
Next
Fehler1:
IEApp.Quit
Set IEApp = Nothing
End Sub
mfg Anton
Anzeige
AW: Datemimport aus dem Internet Teil II
11.07.2012 14:17:22
Karsten
Hallo Anton,
das war wiederum perfekt. Im nachhinein habe ich im Quelltext auch gefunden, was Du verwendet hast, aber selber hätte ich das nicht hinbekommen. Das Programm ist jetzt fertig und mir bleibt nur, mich noch einmal aufrichtig zu bedanken.
Gruß
Karsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige