ich möchte gern die Aktienkurse in einer Datei automatisch über das Internet aktualisieren.
Wer kann helfen.
Vielen Dank
René
ich möchte gern die Aktienkurse in einer Datei automatisch über das Internet aktualisieren.
Wer kann helfen.
Vielen Dank
René
das kannst Du über die Webanfrage erreichen. Welche Adresse im Web Du hast, weiß ich nicht. Ich gebe Dir mal ein Beispiel für DAX-Werte:
Gehe zunächst wie folgt vor:
1. Wähle Menü "Daten"-"Externe Daten"-"Neue Webanfrage"
2. Unter "1." schreibe die genaue Bezeichnung für die Webseite ein,
z.B. :http://gis-tc.teledata.de:9003/gis/b/dax30.html
Unter "2." aktiviere "Nur Tabellen" an (sonst erhältst Du evtl die ganze Webseite)
Unter "3." aktiviere "Keine"
3. Nach "OK" bestätige "Bestehendes Arbeitsblatt" =$A$1
4. Jetzt wird die Internet-Verbindung aufgebaut, wenn Deine Eingaben alle korrekt waren.
5. Nachdem die Daten alle übertragen wurden, siehst Du eine neue Symbolleiste "Externe Daten". Mit einem Klick auf das "!" (Ausrufungszeichen) kannst Du dann die Tabelle jeweils aktualisieren (unter "Daten").
Da Du die ganze Tabelle natürlich kaum brauchen wirst, solltest Du im nächsten Tabellenblatt eine Auswahl vornehmen und die Werte filtern.
Mache erst ein Gerüst für Aktienname, WKN, evtl. Datum und dann letzer Kurs.
Achte auf die genauen Aktienbezeichnungen (oder WKN). Dann schreibst Du in der Spalte "Kurs" eine SVERWEIS-Formel - in meinem Beispiel mußt Du sie mit WECHSELN verbinden, da die Werte im Textformat, d.h. mit Dezimal-Punkt gesendet werden.
Probiere es aus!
Gruß Arnim
p.s.: Ich nehme an, mit OfficeXP geht es genau so wie mit 2000.
folgendes Beispiel funktioniert auch
'es muß ein Tabellenblatt "Daten" vorhanden sein und die WKNs müssen in den Zellen A2 abwärts aufgeführt sein
Option Explicit
Dim Webseite As String
Sub Aktienkurse_Abrufen()
Dim WKN As String
Dim ZeileDaten As Integer 'bezeichnet Zeilennummer im Blatt "Daten"
Dim ZeileWebseite As Integer ' bezeichnet Zeilennummer des aktuellen kurses in der import. Webseite
Application.ScreenUpdating = False
ZeileDaten = 2
Application.DisplayAlerts = False
WKN = Worksheets("Daten").Range("A" & ZeileDaten).Value
Do Until WKN = ""
ZeileWebseite = 70
Webseite = "http://de.finance.yahoo.com/q?s=" & WKN & ".f"
Worksheets.Add after:=Worksheets(Worksheets.Count)
WebAufruf Webseite, ActiveSheet
'in Zelle "G" & zeilewebseite des aktuellen Blattes steht der letzte verfügbare Kurswert
Do Until (Left(Range("A" & ZeileWebseite).Value, 6) = WKN)
ZeileWebseite = ZeileWebseite - 1
Loop
Worksheets("Daten").Range("B" & ZeileDaten).Value = Range("G" & ZeileWebseite).Value
ActiveSheet.Delete
ZeileDaten = ZeileDaten + 1
WKN = Worksheets("Daten").Range("A" & ZeileDaten).Value
Loop
Application.DisplayAlerts = True
Worksheets("Daten").Range("A1").Select
End Sub
Function WebAufruf(Webseite As String, TB As Worksheet)
With ActiveSheet.QueryTables.Add(Connection:="URL;" & Webseite, Destination:=Range("A1"))
.FieldNames = False
.RefreshStyle = xlInsertDeleteCells
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.HasAutoFormat = True
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SavePassword = False
.SaveData = True
End With
End Function