Für Hobbybörsianer
++ ExcelTools ++ Handelssysteme ++Chartanalyse

Kontakt   Impressum   AGBs

Webinhalte einlesen

Mit Excel läßt sich der Zugriff auf Webseiten automatisieren. Per Knopfdruck baut Excel eine Verbindung zum Internet auf und liest die Inhalte einer Webseite in ein Tabellenblatt ein. Dort können die Daten dann mit Excel oder Excel-VBA beliebig weiterverarbeitet werden.

Für das Einlesen gibt es prinzipiell zwei Möglichkeiten: Man liest die ganze Webseite ein oder nur Teile davon. Das Einlesen der gesamten Webseite ist durch den Befehl .WebSelectionType = xlEntirePage spezifiziert. Dies wird im Beispielcode weiter unten aufgezeigt.

Möchte man nur bestimmte Teile einer Webseite einlesen, so ist dies durch die beiden Befehle .WebSelectionType = xlSpecifiedTables und .WebTables = "nr" wobei nr die Nummer der Tabelle innerhalb der Webseite angibt, in der die gewünschten Daten stehen, spezifiziert. Nachteil dieser Methode ist, daß man einer Webseite nicht ansieht, welche Nummer eine entsprechende Datebtabelle hat. Um dies herauszufinden startet man am besten die Aufzeichnung eines Makros und kann dann hinterher den VBA Code bearbeiten.


Folgende Schritte sind hierfür erforderlich:

1. Starte Makroaufzeichnung

Ab jetzt werden alle Aktivitäten als VBA-Code aufgezeichnet.

2. Neue Webabfrage:

3. Internetadresse, deren Inhalt eingelesen werden soll, in das Feld "Adresse" eingeben und auf "Start" klicken.
Hier: http://www.boerse-berlin.de/stocks/snapshot.html?ID_OSI=81035&debug=

4. Dann die Pfeile neben den Tabellen, die eingelesen werden sollen, markieren
5. Import starten durch Klick auf "Importieren"
6. Makroaufzeichnung beenden

7. Nun kann man sich den Visual Basic Code des aufgezeichneten Makros anschauen:
Extras --> Makro --> Makros

Beim Einlesen der Tabelle "9" ergibt sich in Excel folgendes Resultat:


Beispiel

Das folgende Beispiel kann als eigenständige Prozedur durch leichte Adaptionen flexibel eingesetzt werden. Das Makro liest den kompletten Inhalt der Internetadresse http://www.boerse-berlin.de/stocks/snapshot.html?ID_OSI=81035&debug= in das Tabellenblatt "Temp" ein.


Public Sub WebAccess()
Set wstemp = Worksheets("Temp")
Dim webadresse As String
' Beispieladresse
webadresse="http://www.boerse-berlin.de/stocks/snapshot.html?ID_OSI=81035&debug="
' Start Zugriff auf das Internet
With wstemp.QueryTables.Add(Connection:= _
"URL;" & webadresse & "", Destination:=wstemp.Range("A1"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
'-------------------------------------------------------
' 1. Möglichkeit: komplette Webseite einlesen
' .WebSelectionType = xlEntirePage
'
' 2. Möglichkeit: Einzelne Teile einer Webseite einlesen:
' .WebSelectionType = xlSpecifiedTables
' .WebTables = "2" 'z.B. Table Nr. 2
'
' Im folgenden Beispiel wird die ganze Webseite eingelesen
'---------------------------------------------------------

.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub