Jump to content
mc-fly

Aktienkurse im Excel automatisch aktualisieren

Recommended Posts

paradox82
Posted

Supergeil :) Vielen Dank!

Share this post


Link to post
Borusse
Posted
Am 28.11.2017 um 16:22 schrieb Oli Garch:

Für Diejenigen, die früher in Excel die Funktion KURS_AB mit Yahoo genutzt haben: Angeregt durch Ramsteins AppleScript habe ich folgende Funktionen in Anlehnung an KURS_AB zum Kurse laden in Excel über die DiBa verfasst.

@Oli Garch:

Klasse! Vielen Dank! Das klappt sogar bei mir ;-)

Und endlich mal eine Lösung, die auch mit ISIN funktioniert, top.

Wo wir jetzt schon so verwöhnt sind, musst Du aber natürlich auch in die Vollen gehen: Ist auch die Abfrage von VortagesClose, DivYield, MarketCap usw. Irgendwie möglich?

(Hoffentlich beziehe ich keine Prügel, nur weil ich frage ;-] )

Gruß

Share this post


Link to post
Oli Garch
Posted · Edited by Oli Garch

Hallo Borusse,
so etwas habe ich auch hier zu liegen, ist aber noch nicht voll getestet. Ich möchte nur zu Bedenken geben, dass durch viele Funktionsaufrufe die Datei immer langsamer wird. Deshalb alles nur begrenzt sinnvoll.
Aber wenn Du Spass daran hast:
Die Funktion:
=DiBaStockInfo(A2;"kgv")
Hier im Beispiel wieder die isin in Zelle A2. Als zweiter Parameter sind möglich:
"name","divrend","kgv","vortag","branche","wert" (Börsenwert)
Wahrscheinlich werden nicht zu allen Aktien alle Parameter von der Diba geliefert.


Public Function DiBaStockInfo(Isin As String, Text As String) As Variant
Dim InfoString As String
Dim TextPos As Double
Dim SeitenNummer As Integer
Dim XML
On Error GoTo Fehler
    Set XML = CreateObject("MSXML2.ServerXMLHTTP")
    XML.Open "GET", "https://wertpapiere.ing-diba.de/DE/Showpage.aspx?pageID=23&" & "&Isin=" & Isin, False
    XML.send
    InfoString = XML.responsetext
    If Text = "name" Then
        TextPos = InStr(InfoString, "div class=""sh-title""")
        InfoString = Mid(InfoString, TextPos + 24, 100)
        TextPos = InStr(InfoString, "<")
        InfoString = Left(InfoString, TextPos - 3)
        DiBaStockInfo = InfoString
    End If
    If Text = "divrend" Then
        TextPos = InStr(InfoString, "Dividendenrendite (geschätzt)") + 38
        InfoString = Mid(InfoString, TextPos, 50)
        TextPos = InStr(InfoString, "<")
        InfoString = Left(InfoString, TextPos - 1)
        DiBaStockInfo = InfoString
    End If
    If Text = "kgv" Then
        TextPos = InStr(InfoString, "KGV (geschätzt)") + 24
        InfoString = Mid(InfoString, TextPos, 50)
        TextPos = InStr(InfoString, "<")
        InfoString = Left(InfoString, TextPos - 1)
        DiBaStockInfo = CDbl(InfoString)
        DiBaStockInfo = InfoString
    End If
    If Text = "vortag" Then
        TextPos = InStr(InfoString, "Vortag") + 15
        InfoString = Mid(InfoString, TextPos, 50)
        TextPos = InStr(InfoString, "&")
        InfoString = Left(InfoString, TextPos - 1)
        DiBaStockInfo = CDbl(InfoString)
        DiBaStockInfo = InfoString
    End If
    If Text = "branche" Then
        TextPos = InStr(InfoString, "Branche") + 10
        InfoString = Mid(InfoString, TextPos, 500)
        TextPos = InStr(InfoString, ")"">")
        InfoString = Mid(InfoString, TextPos + 3)
        TextPos = InStr(InfoString, "<")
        InfoString = Left(InfoString, TextPos - 1)
        DiBaStockInfo = InfoString
    End If
    If Text = "wert" Then
        TextPos = InStr(InfoString, "rsenwert") + 17
        InfoString = Mid(InfoString, TextPos, 50)
        TextPos = InStr(InfoString, "Mio")
        InfoString = Left(InfoString, TextPos - 1)
        DiBaStockInfo = InfoString
    End If
    
    Set XML = Nothing
Exit Function
Fehler:
    DiBaStockInfo = ""
    Set XML = Nothing
End Function

 

Share this post


Link to post
akista
Posted

Danke Oli. Das scheint tatsächlich zu klappen. Hoffentlich ist es eine Lösung, die etwas länger Bestand hat.

Tradegate Kurse aus dem Direkthandel sind nicht möglich?

Share this post


Link to post
Oli Garch
Posted · Edited by Oli Garch
neue Dateiversion hochgeladen

Hinter dem DiBa Direkthandel stecken ja verschiedene Handelspartner, also nicht nur Tradegate.

Ich habe mal die Funktionen um den Direkthandel erweitert und alles in die Textdatei "DiBa-Stocks-Bonds-Fonds.txt gepackt. Ich hoffe es funktioniert.

 

Nachdem es mir nach einiger Knobelei gelungen ist, die richtige URL herauszufinden (Weiterleitungen sind ja auf Kursseiten sehr beliebt), habe ich es jetzt geschafft, eine Funktion

für den Abruf über ARD-Börse zu realisieren.

Sehr kompakt, da nur eine Fuktion für alle Wertpapiere, WKN oder ISIN ist egal.

Weitere Börsenplätze sind XTF (Xetra-ETF) und TRG (Tradegate).

Kurze Erläuterung auch in der Datei ardKurs.txt (Textversion des Makros).

 

 

 

 

 

 

 

ardKurs.v4.1.xlsm ardKurs.v4.txt

Share this post


Link to post
Nasenwasser
Posted

Hallo Oli Garch, dein ARD-Skript funktioniert super!

Wahrscheinlich bin ich zu blöd, aber wie kann ich bspw. erreichen, dass es mir auch den Goldpreis oder den Euro-Dollar-Kurs darstellt? Als Börse gibt's da im Angebot ja nicht die von Dir vorgesehenen, sondern etwa Forex vwd. Wie müsste ich das Skript ergänzen? Meine naiven Versuche, einfach folgende Zeile

 

If Boerse = "Forex vwd" Then TextPos = InStr(KursString, "Forex vwd</a></strong")

 

einzufügen, waren leider nicht von Erfolg gekrönt.

Share this post


Link to post
Oli Garch
Posted · Edited by Oli Garch
Fehler bei Kursen von Tradegate

Hallo Nasenwasser,
Deine Idee war prinzipiell schon richtig, war auch erstaunt, dass es so nicht geklappt hat.
Der Grund: ARD-Börse findet bei Eingabe einer eigentlich eindeutigen Isin für EURUSD bzw. Gold mehrere Treffer und erwartet eine Auswahl.
Um dem aus den Weg zu gehen habe ich weiter oben im Makro einen weiteren Link eingefügt. (Es ist die Adresse, auf die alle Suchanfragen umgeleitet werden).
Daher ist es erforderlich, statt WKN oder ISIN die spezielle Kennnummer von ARD-Börse in die Excel-Tabelle einzutragen (EURUSD: 2079559, Gold: 6039682).
Ein weiterer Stolperstein ergibt sich dadurch, dass für Gold zwei Kurse bereitgestellt werden (in US$ und in EUR).
Das Makro im Textdatei-Anhang gibt zunächst einmal den Euro-Kurs aus.

Als Börsenplatz für die Funktion "FRX" angeben!
Soll der Dollar-Kurs ausgegeben werden, müssen nur bei den 5 Zeilen Code im Makro zwischen den gestrichelten Linien die Hochkommas am Zeilenanfang gelöscht werden.

Viel Erfolg! Oli

 

 

 

Achtung Korrektur: Anhang ist ausgetauscht. Kleiner Fehler im angehängten Code (Gold-Kennnummer im Makro muss in Anführungszeichen gesetzt werden).

 

ardKurs.v4.txt

Share this post


Link to post
Nasenwasser
Posted
Am 4.12.2017 um 09:39 schrieb Oli Garch:

Hallo Nasenwasser,
Deine Idee war prinzipiell schon richtig, war auch erstaunt, dass es so nicht geklappt hat.
Der Grund: ARD-Börse findet bei Eingabe einer eigentlich eindeutigen Isin für EURUSD bzw. Gold mehrere Treffer und erwartet eine Auswahl.
Um dem aus den Weg zu gehen habe ich weiter oben im Makro einen weiteren Link eingefügt. (Es ist die Adresse, auf die alle Suchanfragen umgeleitet werden).
Daher ist es erforderlich, statt WKN oder ISIN die spezielle Kennnummer von ARD-Börse in die Excel-Tabelle einzutragen (EURUSD: 2079559, Gold: 6039682).
Ein weiterer Stolperstein ergibt sich dadurch, dass für Gold zwei Kurse bereitgestellt werden (in US$ und in EUR).
Das Makro im Textdatei-Anhang gibt zunächst einmal den Euro-Kurs aus.

Als Börsenplatz für die Funktion "FRX" angeben!
Soll der Dollar-Kurs ausgegeben werden, müssen nur bei den 5 Zeilen Code im Makro zwischen den gestrichelten Linien die Hochkommas am Zeilenanfang gelöscht werden.

Viel Erfolg! Oli

 

ARDQuotes.mit.Forex.txt  8   2 kB

 

Achtung Korrektur: Anhang ist ausgetauscht. Kleiner Fehler im angehängten Code (Gold-Kennnummer im Makro muss in Anführungszeichen gesetzt werden).

Super, genau so wollte ich es. Vielen Dank!

Share this post


Link to post
Oli Garch
Posted · Edited by Oli Garch

@Nasenwasser und sonstige Interessierte
Ich habe nach einer Möglichkeit gesucht, Forex-Kurse doch noch mit WKN oder Isin abzurufen. Bin da bei Ariva fündig geworden und habe daraus wieder ein Kursabruf-Makro für Excel gebastelt.

Mit der richtigen WKN/Isin funktioniert das nicht nur mit Gold und EURUSD. Positiv getestet z. B. : EURCAD und Silber.
Weiterer Nebeneffekt: für Aktien, Fonds, ETF, Anleihen noch mehr Börsenplätze: Tradegate, Lang & Schwarz, Quotrix.
Alles noch einmal kurz im angehängten Makro beschrieben.

 

 

ardKurs.v4.txt

Share this post


Link to post
Oli Garch
Posted · Edited by Oli Garch

Möchte noch auf einen Umstand bezüglich Ariva-Kursaktualisierung hinweisen, der mir erst jetzt aufgefallen ist, nachdem bei mir über Ariva keine Kurse mehr angezeigt wurden. Scheinbar blockiert Ariva die Kursversorgung zumindest zeitweilig, wenn Kurse zu häufig automatisch abgerufen werden. Einen Hinweis darauf habe ich auch in einem anderen Forum entdeckt.

Hat schon jemand ähnliche Erfahrungen gemacht?

Oli

Share this post


Link to post
Borusse
Posted

Hi @Oli Garch, danke nochmal für die gute Arbeit. Habe mich jetzt auch nochmal ein bisschen damit beschäftigt. Die DiBaStocks scheinen noch die Kurse der meisten Fonds und Aktien abzugreifen. Der von Dir gepostete Code aus #353 funktioniert aus irgendeinem Grund nicht mehr. Also habe ich erstmal "nur" aktuelle Kurse, kann ich aber auch mit leben. Danke nochmal und Gruß

Share this post


Link to post
Oli Garch
Posted

@Borusse,

bei dem Code aus #353 verwende ich die Seite zum Auslesen, die erscheint, wenn über die DiBa-Suche eine Wertpapiernummer eingegeben wird ("Reiter" Überblick). Ist auf dieser Seite kein Vortageskurs zu finden, sieht es natürlich schlecht aus und das ist bei allen Fonds und ETFs der Fall, die ich probiert habe. Bei Aktien aus dem Dax z. Bsp. gibt es da keine Probleme. Also ist die DiBa für Fonds-Vortageskurse eher nicht geeignet. Vielleicht, wenn das Wetter mal wieder so richtig schlecht ist, schaue ich mich mal nach alternativen Kurslieferanten um.

Share this post


Link to post
Borusse
Posted

Dann sieht das über Weihnachten ja gut aus ;) 

Spaß. Ich bin zufrieden. Wenn Du es nicht für den eigenen Mehrwert machst, dann lass gut sein. :thumbsup:

Es gibt Wichtigeres als Aktienkurse :P

Gruß

Share this post


Link to post
Oli Garch
Posted

Betr.: Excel Kursabruf mit Vortageskurs von Yahoo
Vortageskurse findet man auf einigen Internetseiten, aber nicht auf allen. Dann wird die Auswahl weiter dadurch eingeschränkt, dass einige Seiten das automatisierte Auslesen von Daten in ihren Nutzungsbedingungen ausdrücklich verbieten (z. B. Finanzen.net, Maxblue).
Bei Yahoo haben mich schon immer die Tickersymbole gestört und Anleihenkurse sind kaum zu finden, jetzt bin ich wieder da gelandet.
Der Abruf dauert mit dieser Funktion ca. eine Sekunde für jeden abgerufenen Wert. In der angehägten Exceldatei wird der Abruf erst durch das Anklicken des Abruf-Buttons ausgelöst und nicht schon beim Laden der Datei, dadurch startet die Datei deutlich schneller. In der Datei befinden sich als Test Aktien, eine Anleihe, ein ETF und ein Fonds.
Die Funktion lautet yQuotes und hat 2 Parameter, Ticker und Kursart (l [kleines L]=letzter Kurs und p=Vortageskurs.
In die Zelle einer Excel-Datei steht somit z. B.: =yQuotes("DTE.DE";"p") oder auch wahlweise: yQuotes(A1;B1) als Verweis auf die Zellen in denen die entsprechenden Werte stehen. Die Funktion (Code in der angehägten Textdatei) ist vorher wieder in ein Excel-Modul einzufügen.

 

Download historischer Kurse
Da ich mich nun schon mal mit Yahoo beschäftigt habe, habe ich ein altes Projekt, das Abrufen historischer Kurse von Yahoo, das nach den Umstellungen bei Yahoo nicht mehr funktioniert hat, wiederbelebt. Ist für den einen oder anderen interessant, deshalb im Anhang eine Datei, die den automatischen Abruf historischer Kurse wieder recht komfortabel ermöglicht.

Yahoo.HistoricalQuotes.xlsm

YQuotes.xlsm

yQuotes.txt

Share this post


Link to post
Borusse
Posted

Moin, 

klappt ebenso. Prima. Wiederum vielen Dank. :thumbsup:

Das einzige, was bei mir nicht so zu klappen scheint ist das mit der "Neuberechnung" bzw. der Aktualisierung der Daten. Beim drücken auf "Formeln" --} "Berechnen" --} "neu Berechnen" oder F9 tut sich nix. Ich muss dann immer den Umweg geben, die gewünschten zu aktualisierenden Felder zu kopieren und einfach überschreibend neu einzufügen. Nein ein paar Sekunden Ladezeit ist das dann auch geschehen. Komischerweise lädt die Aktualisierung auf diese Weise allerdings viel länger als früher (als ich noch den auf S. 14 geposteten Code verwendet habe). Gut, da braucht man wahrscheinlich tiefere Kenntnisse um zu verstehen, warum das nun wieder der Fall ist. ^_^

Nun ja, ich muss das Ganze aber ohnehin nicht zig mal am Tag tun, von daher: Formidable! 

Gruß

Share this post


Link to post
Oli Garch
Posted

@ Borusse,
Dass der Abruf der Kurse jetzt länger dauert liegt daran, dass Yahoo seine Finance-API, mit der die Kurse per csv-Download quasi ohne Verzögerung bereitgestellt wurden, abgeschaltet hat. Ich muss jetzt mühsam den Quellcode der Internetseite auslesen und das für jeden Kurs aufs Neue. Eine andere Methode, sie dauert etwas länger, aber das Ergebnis sieht wie früher aus.
Auf die Aktualisierungsschwierigkeiten habe ich früher schon einmal zum Abruf der Kurse von der DiBa etwas geschrieben. F9 geht nicht. In der Beispieldatei tut es das Einzeilenmakro

Private Sub CommandButton1_Click()
    Application.CalculateFull
End Sub

und wird mit dem Aktualisieren-Button (mit dem Namen "CommandButton1")  gestartet.
Ich hoffe, das hilft Dir weiter.

Share this post


Link to post
Borusse
Posted
Am 28.12.2017 um 12:23 schrieb Oli Garch:

Yahoo.HistoricalQuotes.xlsm  25   61 kB

YQuotes.xlsm  27   28 kB

yQuotes.txt  24   1 kB

Hallo, leider muss ich einen Bug in der von @Oli Garch entwickelten Methode berichten :-) 

 

Bei mir passiert es aus mir nicht erkennbaren Gründen seit kurzem, dass statt der gewünschten, abgerufenen Kennzahl nur "#NAME" in der entsprechenden Zeile steht --- abgerufen wird leider gar nicht mehr. Den Code habe ich nicht geändert, bin jetzt nur von Office bzw. Excel 2013 auf 2016 umgestiegen. 

 

Allerdings ist das auch schon wieder mal "umgesprungen" und die Zahlen wurden doch wie gewünscht angezeigt, ohne dass ich da wissentlich etwas zugetan hätte. Hat einer eine Erklärung dafür? 

 

Gruß

Share this post


Link to post
Oli Garch
Posted

@Borusse

Den Ausdruck "#NAME" in der Zelle deute ich so, dass Excel die Funktion (den Code) nicht kennt bzw. nicht findet.

Ich arbeite auch mit Excel 2016 und meine Dateien funktionieren noch. Es muss also auf deinem Rechner irgendwo ein Bit querliegen, vielleicht durch die Umstellung auf Excel 2016.

 

Aber vielleicht vergisst Du Yahoo ganz schnell, denn ich habe inzwischen eine Funktion für Googlefinance gebastelt, die genau so funktioniert und dabei noch unglaublich viel schneller ist. Eine Testdatei mit 35 Werten wird bei mir z. B. bei gutem Wetter in gut 30 Sekunden aktualisiert (jeweils Kurs und Vortageskurs, also 70 Abrufe!).

Google hat leider die Einschränkung, dass nur Frankfurt und Xetra als (deutsche) Börsenplätze bekannt sind. Aber es lassen sich ja auch mehrere Funktionen gleichzeitig nutzen: bei FRA oder ETR mit gquotes abfragen und für Exoten andere Funktionen nehmen.

Beispieldatei und Code im Anhang.

gQuotes.txt

gQuotes.xlsm

Share this post


Link to post
Borusse
Posted

hi @Oli Garch, hatte den Fehler übrigens gefunden. Makros waren komplett deaktiviert! 

Ich habe das noch nicht alles so umgemodelt, dass alles via google und die restlichen "Exoten" über die anderen Anbieter abgefragt werden. Die paar Sekunden machen bei meiner bescheidenen Tabelle den Braten auch nicht fett ;-] Aber ich sehe das jetzt schon richtig, dass bis auf das Sonderprojekt mit den historischen Kursen alle Abfragen momentan noch im Wesentlichen das selbe können(Schlusskurs, Vortageskurs), richtig ?

 

Gruß

Share this post


Link to post
Oli Garch
Posted

@Borusse
Bei den Makros habe ich mich bewusst nur für die den letzten Kurs und den Vortagesschlusskurs entschieden, weil sonst die Aktualisierungszeiten für die Tabelle meiner Meinung nach nicht mehr akzeptabel sind.
Ich habe schon einmal bei einer früheren Gelegenheit auf die Möglichkeiten bei Google mit Hilfe von Google-Tabellen und der Funktion Googlefinance hingewiesen. Da stehen einem zahlreiche Parameter zur Verfügung (Syntax von Googlefinance) und man kann sich eine wirklich ansehnliche und informative Tabelle zusammenstellen. Diese Tabelle lässt sich dann sehr einfach über einen Link in der Browser-Symbolleiste mit einem Klick aufrufen und im Browser aktualisiert sich die Tabelle dann laufend, also einfacher geht es kaum. Die Arbeitsweise mit Google-Tabellen ähnelt der von Excel und wenn man möchte, lässt sich diese Tabelle ja auch mit der in neueren Excel-Versionen recht komfortablen Datenimport-Funktionalität nach Excel importieren. Alternativ hätte ich da noch eine Makro-Lösung, die die Google-Tabelle als csv-Datei nach Excel importiert, wo die importierten Daten dann z. B. über Zellverknüpfungen in die eigene Excel-Tabelle eingebunden werden können.

Grüße

Share this post


Link to post
Oli Garch
Posted

Vielleicht möchte es doch jemand verwenden: hier also einige zusätzliche Funktionen zum Auslesen bei Google Finance
gInfoPE (KGV)
gInfoMC (Marktkapitalisierung)
gInfoDiv (Dividende)
gInfoYield (Dividendenrendite)
Syntaxbeispiel =gInfoPE(A1;B1) in A1 Börsenplatz FRA oder ETR, in B1 Ticker
Einfach die in der angehängten Textdatei enthaltenen Funktionen zu den schon vorhandenen Funktionen gQuotesL und gQuotesP hinzukopieren.
Zu beachten wäre noch, dass z. B. bei US-Aktien keine dieser Werte ausgegeben werden, wenn deutsche Börsenplätze aufgerufen werden. Das lässt sich umgehen, indem man beispielsweise statt der Formel =gInfoPE(A1;B1) die direkten Angaben für die amerikanische Börse eingibt (Beispiel Altria):=gInfoPE("NYSE";"MO")(Gänsefüßchen " nicht vergessen!). Für die Kurse in DE kann in Zelle A1 FRA und B1 PHM7 stehen bleiben.
Außerdem möchte ich darauf hinweisen, dass in den Funktionen der VBA-Befehl "split" verwendet wird, der in Excel-Versionen vor dem Jahr 2000 noch nicht verfügbar ist und somit Fehlermeldungen auslöst.

gInfo.txt

Share this post


Link to post
Borusse
Posted

hier wird noch eine neue Methode vorgestellt, diesmal wieder mit AddIn. 

 

Gruß

Share this post


Link to post
klingklang
Posted

wo finde ich denn die Tabelle?

Share this post


Link to post
Oli Garch
Posted

Ähm, jetzt stehe ich gerade auf dem Schlauch. Bezieht sich deine Frage auf das Anlegen einer neuen Google-Tabelle?

Share this post


Link to post
klingklang
Posted

Ich steh glaub aufm Schlauch...

 

Dachte es geht hier um ein Addon oder dergleichen?

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...