Borusse Posted November 29, 2017 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 November 29, 2017 · Edited November 30, 2017 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 November 30, 2017 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 November 30, 2017 · Edited September 11, 2020 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 December 3, 2017 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 December 4, 2017 · Edited February 4, 2019 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 December 6, 2017 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 December 7, 2017 · Edited September 16, 2020 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 December 12, 2017 · Edited December 13, 2017 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 December 22, 2017 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 December 22, 2017 @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 December 23, 2017 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. Es gibt Wichtigeres als Aktienkurse Gruß Share this post Link to post
Oli Garch Posted December 28, 2017 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 December 29, 2017 Moin, klappt ebenso. Prima. Wiederum vielen Dank. 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 December 29, 2017 @ 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 February 5, 2018 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 February 5, 2018 @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 February 11, 2018 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 February 12, 2018 @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 February 13, 2018 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 February 23, 2018 hier wird noch eine neue Methode vorgestellt, diesmal wieder mit AddIn. Gruß Share this post Link to post
Oli Garch Posted March 2, 2018 Ä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 March 3, 2018 Ich steh glaub aufm Schlauch... Dachte es geht hier um ein Addon oder dergleichen? Share this post Link to post