UdonThani Mai 24, 2023 vor 2 Stunden von Oli Garch: ich fange mal den Ball und versuche es: Nehmen wir an, das Wertpapiersymbol steht in Zelle C3 Dann schreiben wir die URL von @etf-friese z. B. in Zelle J3: =WEBDIENST("https://query2.finance.yahoo.com/v10/finance/quoteSummary/"&C3&"?modules=price") Wenn ich jetzt den Kurs in D3 haben möchte, schreibe ich in Zelle D3: =WECHSELN(TEIL(J3;FINDEN("regularMarketPrice";J3)+27;FINDEN(",";TEIL(J3;FINDEN("regularMarketPrice";J3)+27;50))-1);".";",")/1 Vielen Dank, hat auf Anhieb funktioniert, ich kann langsam schon gar nicht mehr zählen wie oft du mir meine Datei gerettet hast ;-) Ich habe die Formel noch ein bißchen für meine Zwecke umgebaut, dass ich direkt das Ergebnis bekomme und keine Verlinkung in J3 (in deinem Beispiel) machen muß - ging anstandslos. Noch eine Frage dazu: Wenn ich die Werte für Vortag, Änderung in Währung, Änderung in %, Kursdatum und Kurszeit haben möchte, wie muß ich die Formel dann jeweils abändern? Diesen Beitrag teilen Link zum Beitrag
Oli Garch Mai 24, 2023 vor 40 Minuten von UdonThani: Wenn ich die Werte für Vortag, Änderung in Währung, Änderung in %, Kursdatum und Kurszeit haben möchte das ist nicht so schwer. Einfach in der oben besprochenen Formel nach dem jeweiligen Wert suchen (z. B. "regularMarketChange" ). Da die Suchausdrücke unterschiedlich lang sind, die Zahl "27" (2x) in der Formel entsprechend anpassen. Das Ergebnis sieht man beim Ausprobieren besser, wenn am Ende der Formel das "/1" zunächst weggelassen wird, weil sonst immer ein Fehler angezeigt wird, wenn man nicht gleich eine Zahl erwischt hat. Aber hier gleich mal die Anpassungen: regularMarketPreviousClose: =WECHSELN(TEIL(J3;FINDEN("regularMarketPreviousClose";J3)+35;FINDEN(",";TEIL(J3;FINDEN("regularMarketPreviousClose";J3)+35;50))-1);".";",")/1 regularMarketChange: =WECHSELN(TEIL(J3;FINDEN("regularMarketChange""";J3)+29;FINDEN(",";TEIL(J3;FINDEN("regularMarketChange""";J3)+29;50))-1);".";",")/1 regularMarketChangePercent: =WECHSELN(TEIL(J3;FINDEN("regularMarketChangePercent";J3)+35;FINDEN(",";TEIL(J3;FINDEN("regularMarketChangePercent";J3)+35;50))-1);".";",")/1 Bitte beachten: Da Excel regularMarketChange und regularMarketChangePercent hier nicht unterscheiden kann und bei der Suche beim ersten Auffinden der Zeichenfolge "regularMarketChange" hängen bleibt, musste ich die Zeichenfolge "regularMarketChange" noch um ein """ verlängern. Bei Datum und Uhrzeit wird es ein bisschen tricky, weil Yahoo das UNIX-Zeit Format verwendet. Außerdem berücksichtigt die Formel Sommer und Winterzeit. Für Datum und Uhrzeit wird die gleiche Formel verwendet. Die Excel-Zelle muss nur entsprechend formatiert werden. regularMarketTime: =(TEIL(J3;FINDEN("regularMarketTime";J3)+19;FINDEN(",";TEIL(J3;FINDEN("regularMarketTime";J3)+19;20))-1)+WENN(UND(HEUTE()>=(DATUM(JAHR(HEUTE());4;0)-WOCHENTAG(DATUM(JAHR(HEUTE());4;0))+1);HEUTE()<=(DATUM(JAHR(HEUTE());11;0)-WOCHENTAG(DATUM(JAHR(HEUTE());11;0))+1));7200;3600))/86400+25569 vor einer Stunde von UdonThani: Ich habe die Formel noch ein bißchen für meine Zwecke umgebaut, dass ich direkt das Ergebnis bekomme und keine Verlinkung in J3 (in deinem Beispiel) machen muß Über diese Vorgehensweise wurde hier auch schon diskutiert. Durch das viermalige Austauschen von "J3" durch die Webdienst-Abfrage wird Webdienst auch viermal ausgeführt. Das könnte bei der abzufragenden Stelle nicht besonders wünschenswert sein und auch das eigene Aktualisierungstempo beeinträchtigen. Kommt natürlich auch immer auf die Anzahl der Wertpapiere an. Diesen Beitrag teilen Link zum Beitrag
Privatier2029 Mai 25, 2023 Danke für die guten Tipps. Funktioniert bei mir wieder für alle Aktien und ETFs. Kryptos funktionieren aber mit der neuen Formel bei mir nicht. Habe als Wertpapiersymbol ETH-EUR eingetragen. Hat jemand dazu eine Idee? Diesen Beitrag teilen Link zum Beitrag
Oli Garch Mai 25, 2023 vor einer Stunde von Privatier2029: Kryptos funktionieren aber mit der neuen Formel bei mir nicht. kann eigentlich nicht sein. Habe es mit ETH-EUR getestet. Zelle A1: ETH-EUR Zelle A2: =WEBDIENST("https://query2.finance.yahoo.com/v10/finance/quoteSummary/"&A1&"?modules=price") Zelle A3: =WECHSELN(TEIL(A2;FINDEN("regularMarketPrice";A2)+27;FINDEN(",";TEIL(A2;FINDEN("regularMarketPrice";A2)+27;50))-1);".";",")/1 Anzeige in A3: 1665,139 Muss sich wohl bei dir ein kleiner Fehler eingeschlichen haben. Diesen Beitrag teilen Link zum Beitrag
UdonThani Mai 25, 2023 vor 20 Stunden von Oli Garch: das ist nicht so schwer. Einfach in der oben besprochenen Formel nach dem jeweiligen Wert suchen (z. B. "regularMarketChange" ). Da die Suchausdrücke unterschiedlich lang sind, die Zahl "27" (2x) in der Formel entsprechend anpassen. Das Ergebnis sieht man beim Ausprobieren besser, wenn am Ende der Formel das "/1" zunächst weggelassen wird, weil sonst immer ein Fehler angezeigt wird, wenn man nicht gleich eine Zahl erwischt hat. Aber hier gleich mal die Anpassungen: Vielen Dank - hat alles einwandfrei funktioniert. Meine Datei läuft wieder. vor 20 Stunden von Oli Garch: Über diese Vorgehensweise wurde hier auch schon diskutiert. Durch das viermalige Austauschen von "J3" durch die Webdienst-Abfrage wird Webdienst auch viermal ausgeführt. Das könnte bei der abzufragenden Stelle nicht besonders wünschenswert sein und auch das eigene Aktualisierungstempo beeinträchtigen. Kommt natürlich auch immer auf die Anzahl der Wertpapiere an. Das war mir bislang nicht bewußt. Ich rufe eine niedrige zweistellige Anzahl von Wertpapieren ab. Habe aber jetzt dennoch meine Datei um eine Hilfsspalte erweitert und nutze deine Formel im Original. Dann hoffen wir jetzt mal dass diese Lösung jetzt eine Weile läuft und Yahoo nicht weitere Änderungen vornimmt. Diesen Beitrag teilen Link zum Beitrag
ChuckysEnkel Mai 25, 2023 · bearbeitet Mai 25, 2023 von ChuckysEnkel 10 hours ago, Oli Garch said: kann eigentlich nicht sein. Habe es mit ETH-EUR getestet. Zelle A1: ETH-EUR Zelle A2: =WEBDIENST("https://query2.finance.yahoo.com/v10/finance/quoteSummary/"&A1&"?modules=price") Zelle A3: =WECHSELN(TEIL(A2;FINDEN("regularMarketPrice";A2)+27;FINDEN(",";TEIL(A2;FINDEN("regularMarketPrice";A2)+27;50))-1);".";",")/1 Anzeige in A3: 1665,139 Muss sich wohl bei dir ein kleiner Fehler eingeschlichen haben. Die Variante funktioniert bei mir auch. In der YahooKursUndKennzahlen v1.0.xlsm stand aber doch oben in einer separaten Zelle die entscheidende Formel https://query1.finance.yahoo.com/v7/finance/quote?symbols= bzw. jüngst https://query1.finance.yahoo.com/v6/finance/quote?symbols= Habe ich es richtig verstanden, dass es keine Möglichkeit gibt, diese Formel einfach irgendwie anders anzupassen so dass der vorherige modus operandi wieder läuft? Sry, bin kein Excel-Experte :-P Edit: Noch eine Frage: wenn "regularMarketPrice" = aktueller Kurs ist, was ist dann der Suchbegriff für "Vortageskurs"? Diesen Beitrag teilen Link zum Beitrag
etf-friese Mai 25, 2023 vor 24 Minuten von ChuckysEnkel: wenn "regularMarketPrice" = aktueller Kurs ist, was ist dann der Suchbegriff für "Vortageskurs"? regularMarketPreviousClose vor 24 Minuten von ChuckysEnkel: Habe ich es richtig verstanden, dass es keine Möglichkeit gibt, diese Formel einfach irgendwie anders anzupassen so dass der vorherige modus operandi wieder läuft? Das ist keine Formel sondern ein Request an die Yahoo-API, deren Aussehen wird von Yahoo bestimmt. Wenn die V7/V6 nicht mehr bedient wird, dann muß man eben z.B. die V10 nutzen. Und der Request an die V10 sieht eben anders aus als früher. Hat mit Excel/LibreOffice nichts zu tun - nur mit Yahoo. Diesen Beitrag teilen Link zum Beitrag
Oli Garch Mai 25, 2023 vor 12 Minuten von ChuckysEnkel: dass es keine Möglichkeit gibt, diese Formel einfach irgendwie anders anzupassen @ChuckysEnkel, nein, diese URLs funktionieren nicht mehr. Da lässt sich nichts mehr anpassen. Du musst auf die Alternative umstellen. vor 17 Minuten von ChuckysEnkel: was ist dann der Suchbegriff für "Vortageskurs"? regularMarketPreviousClose nur den Suchbegriff ändern reicht aber nicht. Da die Längen der Suchbegriffe unterschiedlich sind, steht das erste Zeichen des gesuchten Teilstrings immer an einer anderen Stelle und muss in der Formel zweimal geändert werden. Darauf wurde bereits 5 Beiträge früher (#777) eingegangen. Diesen Beitrag teilen Link zum Beitrag
akista Mai 25, 2023 Hat evtl. jemand von Euch auch die Abfrage für Kurszeit und Kursdatum Bisher waren die so =(WERT(TEIL(WEBDIENST(Adresse&$B7);SUCHEN("regularMarketTime";WEBDIENST(Adresse&$B7))+19;FINDEN(",";TEIL(WEBDIENST(Adresse&$B7);SUCHEN("regularMarketTime";WEBDIENST(Adresse&$B7))+19;18))-1))+7200) / 86400 + 25569 B7 ist dabei mein Aktienkürzel Wenn ich es richtig verstehe, müssen auch die verschiedenen Zahlen angepasst werden. Aber ich habe keine Ahnung wie. Diesen Beitrag teilen Link zum Beitrag
Oli Garch Mai 25, 2023 @akista vor 26 Minuten von akista: Hat evtl. jemand von Euch auch die Abfrage für Kurszeit und Kursdatum schreibe in das Feld mit dem Namen Adresse die jetzt funktionierende URL: https://query2.finance.yahoo.com/v10/finance/quoteSummary/ In deiner Formel fügst du hinter B7 jeweils: &"?modules=price" an. Das müsste dann funktionieren. Diesen Beitrag teilen Link zum Beitrag
Privatier2029 Mai 26, 2023 vor 17 Stunden von Oli Garch: kann eigentlich nicht sein. Habe es mit ETH-EUR getestet. Zelle A1: ETH-EUR Zelle A2: =WEBDIENST("https://query2.finance.yahoo.com/v10/finance/quoteSummary/"&A1&"?modules=price") Zelle A3: =WECHSELN(TEIL(A2;FINDEN("regularMarketPrice";A2)+27;FINDEN(",";TEIL(A2;FINDEN("regularMarketPrice";A2)+27;50))-1);".";",")/1 Anzeige in A3: 1665,139 Muss sich wohl bei dir ein kleiner Fehler eingeschlichen haben. Jetzt funktionierts bei mir auch (ohne was zu ändern). Danke für deine Rückmeldung. Diesen Beitrag teilen Link zum Beitrag
MaexNRW Mai 27, 2023 Ich hab auch noch eine Frage dazu: In der vorherigen Version gab es für die Abfrage der Dividendenzahlungen noch die Felder "trailingAnnualDividendRate" und "trailingAnnualDividendYield" In der Sicht "modules=price" scheinen sie nicht mehr vorhanden zu sein. Hat wer eine Übersicht, welche modules es noch gibt. Für die Finanzkennzahlen hab ich z.B. modules=financialData gefunden. Diesen Beitrag teilen Link zum Beitrag
MaexNRW Mai 27, 2023 Ich habe es gefunden. Es gibt noch die folgenden Module: price, assetProfile, summaryDetail, incomeStatementHistory, balanceSheetHistory, defaultKeyStatistics, financialData,calendarEvents, recommendationTrend, upgradeDowngradeHistory, majorHoldersBreakdown Deutlich mehr Kennzahlen als im Modul "price", gibt es im Modul "summaryDetail". Dort stehen auch die Dividendenzahlungen: Wenn das Symbol in C3 steht, könnt ihr die Dividendenzahlung pro Aktien wie folgt abfragen: =WENNFEHLER(WECHSELN(TEIL(WEBDIENST("https://query2.finance.yahoo.com/v10/finance/quoteSummary/"&C3&"?modules=summaryDetail");SUCHEN("dividendRate"":";WEBDIENST("https://query2.finance.yahoo.com/v10/finance/quoteSummary/"&C3&"?modules=summaryDetail"))+21;FINDEN(",";TEIL(WEBDIENST("https://query2.finance.yahoo.com/v10/finance/quoteSummary/"&C3&"?modules=summaryDetail");SUCHEN("dividendRate"":";WEBDIENST("https://query2.finance.yahoo.com/v10/finance/quoteSummary/"&C3&"?modules=summaryDetail"))+21;50))-1);".";",")/1;"-") Und die Dividendenrendite wie folgt: =WENNFEHLER(WECHSELN(TEIL(WEBDIENST("https://query2.finance.yahoo.com/v10/finance/quoteSummary/"&C3&"?modules=summaryDetail");SUCHEN("dividendYield"":";WEBDIENST("https://query2.finance.yahoo.com/v10/finance/quoteSummary/"&C3&"?modules=summaryDetail"))+22;FINDEN(",";TEIL(WEBDIENST("https://query2.finance.yahoo.com/v10/finance/quoteSummary/"&C3&"?modules=summaryDetail");SUCHEN("dividendYield"":";WEBDIENST("https://query2.finance.yahoo.com/v10/finance/quoteSummary/"&C3&"?modules=summaryDetail"))+22;50))-1);".";",")/1;"-") Diesen Beitrag teilen Link zum Beitrag
Oli Garch Mai 27, 2023 vor 25 Minuten von MaexNRW: Hat wer eine Übersicht, welche modules es noch gibt Hallo @MaexNRW ergänzend zu deinen Recherchen noch ein Hinweis. Ich habe ca. vor einem Jahr hier mal eine Excel-Datei eingestellt, in der man nach Eingabe eines Wertpapiersymbols alle verfügbaren Module von Yahoo anzeigen lassen kann. Die Datei findest du unter diesem Beitrag: #683 jTest.xlm. Wenn trotz niedrig eingestellter Makrosicherheit sich das Auswahlelement in der Datei nicht anklicken lässt. Unter Datei - Rechtsklick - weitere Optionen - Eigenschaften - rechts unten das Kästchen ZULASSEN anklicken. In der Tabelle gibt es auch ein Tabellenblatt mit allen verfügbaren Modulen. Diesen Beitrag teilen Link zum Beitrag
UnHombre Mai 30, 2023 Am 24.5.2023 um 20:17 von Oli Garch: ich fange mal den Ball und versuche es: Nehmen wir an, das Wertpapiersymbol steht in Zelle C3 Dann schreiben wir die URL von @etf-friese z. B. in Zelle J3: =WEBDIENST("https://query2.finance.yahoo.com/v10/finance/quoteSummary/"&C3&"?modules=price") Wenn ich jetzt den Kurs in D3 haben möchte, schreibe ich in Zelle D3: =WECHSELN(TEIL(J3;FINDEN("regularMarketPrice";J3)+27;FINDEN(",";TEIL(J3;FINDEN("regularMarketPrice";J3)+27;50))-1);".";",")/1 Hallo, ich habe ein wenig gebastelt, habe es aber nicht hinbekommen. Wie baue ich diese neue Abfrage in die Beispieldatei "YahooKursUndKennzahlen v1.0.xlsm" ein? Wenn ich es richtig sehe, muss ich u.a. die 'alte' Zeile XML.Open "GET", "https://query1.finance.yahoo.com/v7/finance/quote?symbols=" & Ticker, False zweimal modifizieren?!? Ich bitte um Nachsicht. Diesen Beitrag teilen Link zum Beitrag
enormo Mai 30, 2023 vor einer Stunde von UnHombre: Hallo, ich habe ein wenig gebastelt, habe es aber nicht hinbekommen. Wie baue ich diese neue Abfrage in die Beispieldatei "YahooKursUndKennzahlen v1.0.xlsm" ein? Wenn ich es richtig sehe, muss ich u.a. die 'alte' Zeile XML.Open "GET", "https://query1.finance.yahoo.com/v7/finance/quote?symbols=" & Ticker, False zweimal modifizieren?!? Ich bitte um Nachsicht. daran wäre ich auch sehr interessiert, wie ich die genannte Datei anpassen muss. Herzlichen Dank!!!!! Diesen Beitrag teilen Link zum Beitrag
enormo Mai 30, 2023 mmhhh also, wenn ich die posts so richtig lese, wird das mit der Beispielsdatei "YahooKursUndKennzahlen v1.0.xlsm" wegen der Umstellung nicht mehr funktionieren, oder??? Was ich nun umsetzen konnte ist die Lösung aus #779. Allerdings schaffe ich es nicht currency sowie Kurszeit und Kursdatum (wie in #785 beschrieben) umzusetzen. Es wäre wirklich klasse, wenn mir einer dabei helfen könnte die drei Parameter mit dem neuen Weg abrufen zu können. Besten Dank!!!! Diesen Beitrag teilen Link zum Beitrag
ChuckysEnkel Mai 30, 2023 · bearbeitet Mai 30, 2023 von ChuckysEnkel Vielen Dank @Oli Garch für den Wink. Bin zwar kein Excel-Held, habe es aber glaube ich nach ein bisschen Bastelei hinbekommen und kann damit zumindest meinem Vorpostern@UnHombre helfen (siehe Anhang)? Zeile 2-3 zeigen Euch an wie das Symbol für Aktien eingetragen werden muss. Zeile 4 für normale Währungen. Zeile 5 für Kryptos. Ich hoffe, das hilft schon mal weiter? Edit: Umwandlung ISIN in Symbole entnehme ich mir immer via https://www.xetra.com/xetra-de/ wo das ausgewiesen wird. Einfach Symbol mit .DE oder (falls Nischenpapier) ggf. auch mit .F ergänzen. Funktioniert meistens. Was mich noch interessieren würde, ist ob irgendwo eine Übersicht zu organisieren wäre. Welche Informationen sonst noch so (und wie) abrufen könnte. Mich würde z.B. so eine Nerd-Info wie Anzahl der Aktien des Unternehmens insgesamt interessieren :-) 230530 Hilfstabelle Akitenkurse in Excel WPF V1.0.xlsx Diesen Beitrag teilen Link zum Beitrag
enormo Juni 1, 2023 Hallo zusammen, erst einmal möchte ich mich herzlich bei allen, die hier immer tatkräftig unterstützen bedanken. Dank dem support konnte ich vieles seit diversen yahoo - Umstellungen umsetzen. Gerade hänge ich aber an einigen Stellen und bitte euch daher, einen Blick auf die beigefügte Tabelle zu werfen. Dank @Oli Garch, @MaexNRW und weiteren konnte ich mit der neuen Abfrage price (#779), regularMarketTime mit Datum (#777) und dividendRate (#778) umsetzen. Ich habe dann versucht in Zeile 4 irgendwie durch ersetzen der Parameter in den beiden verschiedenen Modulen Price und summaryDetail meine gewünschten Ausgaben hinzubekommen. Aber leider erfolglos. Im Einzelnen hätte ich gerne wieder "shortName", "currency", fullExchangeName", "regularMarketTime" mit Uhrzeit (statt Datum). Vielen Dank für Eure Hilfe!! yahoofinanceabfragen.xlsx Diesen Beitrag teilen Link zum Beitrag
Oli Garch Juni 1, 2023 Hallo @enormo, bin gerade bis zum Wochenende nicht im Lande und komme nicht an meine Dateien heran. Deshalb nur soviel: Für die Uhrzeit einfach in die Zelle das gleiche wie für das Datum eingeben und die Zelle als Uhrzeit formatieren. Für weitere Parameter, besonders alphanumerische, benötigst du am Ende der Formel das "/1" nicht. In der Formel ersetzt du die Zahl 27 (mehrmals) wie in regularMarketPrice durch 9 + Anzahl der Buchstaben deines gesuchten Parameters. Viel Erfolg! Diesen Beitrag teilen Link zum Beitrag
enormo Juni 1, 2023 vor 36 Minuten von Oli Garch: Hallo @enormo, bin gerade bis zum Wochenende nicht im Lande und komme nicht an meine Dateien heran. Deshalb nur soviel: Für die Uhrzeit einfach in die Zelle das gleiche wie für das Datum eingeben und die Zelle als Uhrzeit formatieren. Für weitere Parameter, besonders alphanumerische, benötigst du am Ende der Formel das "/1" nicht. In der Formel ersetzt du die Zahl 27 (mehrmals) wie in regularMarketPrice durch 9 + Anzahl der Buchstaben deines gesuchten Parameters. Viel Erfolg! Besten Dank für die schnelle Rückmeldung. Ich hoffe Du bist wegen einem wunderschönen Urlaub nicht im Lande ;):) Uhrzeit Format ist erledigt - manchmal kann es so einfach sein currency hat hingegen nur teilweise funktioniert +27 habe ich ersetzt durch +9+2 allerdings wird am Ende der Währung ein " mit ausgegeben zB GBP" oder USD" Und bei "shortName" und "fullExchangeName" bin ich irgendwie weiter lost. Bin mir aber auch nicht sicher, ob die in den Modulen price oder summaryDetail sind. Falls Du nächste Woche mal die Zeit findest, wäre es klasse, wenn Du mir nochmal helfen könntest.... Dir eine gute Zeit & nochmal vielen Dank!! Diesen Beitrag teilen Link zum Beitrag
Oli Garch Juni 1, 2023 Da war ich wohl nicht präzise genug. Ich meinte Anzahl der Buchstaben des Parameter-Namens (currency = 8) + 9 = 17. Also statt 27 die 17. Und ja, ein schöner Urlaub. Diesen Beitrag teilen Link zum Beitrag
enormo Juni 1, 2023 vor 35 Minuten von Oli Garch: Da war ich wohl nicht präzise genug. Ich meinte Anzahl der Buchstaben des Parameter-Namens (currency = 8) + 9 = 17. Also statt 27 die 17. Und ja, ein schöner Urlaub. puh - dann hab ich ja quasi schon ein schlechtes Gewissen für die Urlaubsstörung .... der Befehl =WECHSELN(TEIL(B4;FINDEN("currency";B4)+17;FINDEN(",";TEIL(B4;FINDEN("currency";B4)+17;50))-1);".";",") gibt einen Fehler quoteSourceName":"Delayed Quote" und der Befehl =WECHSELN(TEIL(B5;FINDEN("currency";B5)+8+2;FINDEN(",";TEIL(B5;FINDEN("currency";B5)+8+2;50))-1);".";",") gibt die Währung in " aus, also zB "USD" statt USD B4 und B5 sind jeweils die Webdienst Funktion mit dem Modul price Bitte erst nach dem Urlaub antworten - lass es Dir gut gehen!!!! Diesen Beitrag teilen Link zum Beitrag
Oli Garch Juni 5, 2023 Hallo @UnHombre und @enormo die Makros in der Datei "YahooKursUndKennzahlen v1.0.xlsm" lassen sich schlecht anpassen. Deshalb hier ein neues: Function parseYahoo(strSymbol As String, strKennzahl As String, strModul As String) As Variant Dim strResponse As String Dim objXML As Object Dim strZeichen As String Set objXML = CreateObject("MSXML2.ServerXMLHTTP") objXML.Open "GET", "https://query1.finance.yahoo.com/v10/finance/quoteSummary/" & strSymbol & "?modules=" & strModul, False objXML.send On Error Resume Next strResponse = objXML.responsetext strResponse = Mid(strResponse, InStr(strResponse, strKennzahl), 50) If (InStr(strKennzahl, "Time") Or InStr(strKennzahl, "Date")) And InStr(strKennzahl, "full") = 0 Then strResponse = Mid(strResponse, InStr(strResponse, strKennzahl), 50) strResponse = Mid(strResponse, InStr(strResponse, ":") + 1, 50) strResponse = Left(strResponse, InStr(strResponse, ",") - 1) If Date >= DateSerial(Year(Date), 4, 0) And Date <= DateSerial(Year(Date), 11, 0) - Weekday(DateSerial(Year(Date), 11, 0)) + 1 Then strResponse = strResponse + 7200 Else: strResponse = strResponse + 3600 End If strResponse = (strResponse / 86400) + 25569 parseYahoo = strResponse Else: strResponse = Mid(strResponse, InStr(strResponse, "{") + 7, 50) strResponse = Left(strResponse, InStr(strResponse, ",") - 1) End If If IsNumeric(strResponse) And strResponse <> "" Then strResponse = Replace(strResponse, ".", ",") parseYahoo = CDbl(strResponse) End If If IsNumeric(Right(strResponse, 1)) = False And Len(strResponse) > 0 And IsNumeric(Left(strResponse, 1)) Then strZeichen = Right(strResponse, 1) strResponse = Left(strResponse, Len(strResponse) - 1) strResponse = Replace(strResponse, ".", ",") & strZeichen parseYahoo = strResponse End If End Function Einfach in das vorhandene VBA-Modul kopieren. Die alten Makros können gelöscht werden. Die Funktion heißt jetzt parseYahoo und alle Formeln müssen entsprechend folgendermaßen geändert werden: =parseYahoo($C3;D$2;"price") oder =parseYahoo($C3;D$2;"summaryDetail") In C3 steht hier das Wertpapiersymbol und in D2 der gesuchte Parameter (ist in der Beispieldatei die Spaltenüberschrift. Zu beachten: regularMarketChange" wird ein ' " ' angehägt, weil sonst eine Verwechselung mit regularMarketChangePercent auftritt. Welche Funktion verwendet das Modul "price" und welches das Modul "summaryDetail"? Parameter in "price": maxAge, preMarketChange, preMarketPrice, postMarketChange, postMarketPrice, regularMarketChangePercent, regularMarketChange, regularMarketTime, priceHint, regularMarketPrice, regularMarketDayHigh, regularMarketDayLow, regularMarketVolume, averageDailyVolume10Day, averageDailyVolume3Month, regularMarketPreviousClose, regularMarketSource, regularMarketOpen, strikePrice, openInterest, exchange, exchangeName, exchangeDataDelayedBy, marketState, quoteType, symbol, underlyingSymbol, shortName, longName, currency, quoteSourceName, currencySymbol, fromCurrency, toCurrency, lastMarket, volume24Hr, volumeAllCurrencies, circulatingSupply, marketCap Parameter in "summaryDetail": maxAge, priceHint, previousClose, open, dayLow, dayHigh, regularMarketPreviousClose, regularMarketOpen, regularMarketDayLow, regularMarketDayHigh, dividendRate, dividendYield, exDividendDate, payoutRatio, fiveYearAvgDividendYield, beta, forwardPE, volume, regularMarketVolume, averageVolume, averageVolume10days, averageDailyVolume10Day, bid, ask, bidSize, askSize, marketCap, yield, ytdReturn, totalAssets, expireDate, strikePrice, openInterest, fiftyTwoWeekLow, fiftyTwoWeekHigh, priceToSalesTrailing12Months, fiftyDayAverage, twoHundredDayAverage, trailingAnnualDividendRate, trailingAnnualDividendYield, navPrice, currency, fromCurrency, toCurrency, lastMarket, coinMarketCapLink, volume24Hr, volumeAllCurrencies, circulatingSupply, algorithm, maxSupply, startDate, tradeable Diesen Beitrag teilen Link zum Beitrag
Oli Garch Juni 5, 2023 Am 1.6.2023 um 11:46 von enormo: Im Einzelnen hätte ich gerne wieder "shortName", "currency", fullExchangeName", "regularMarketTime" mit Uhrzeit (statt Datum). auf der Grundlage deiner Tabelle aus Beitrag #794 sind die Formeln shortName: =WECHSELN(TEIL(B4;FINDEN("shortName";B4)+12;FINDEN(",";TEIL(B4;FINDEN("shortName";B4)+12;50))-2);".";",") currency: =WECHSELN(TEIL($B4;FINDEN("currency";$B4)+11;FINDEN(",";TEIL($B4;FINDEN("currency";$B4)+11;50))-2);".";",") exchangeName (also nicht : fullExchangeName - hab ich nirgendwo mehr gefunden): =WECHSELN(TEIL($B4;FINDEN("exchangeName";$B4)+15;FINDEN(",";TEIL($B4;FINDEN("exchangeName";$B4)+15;50))-2);".";",") regularMarketTime: =(TEIL($B4;SUCHEN("regularMarketTime";$B4)+19;FINDEN(",";TEIL($B4;SUCHEN("regularMarketTime";$B4)+19;50))-1)+WENN(UND(HEUTE()>=(DATUM(JAHR(HEUTE());4;0)-WOCHENTAG(DATUM(JAHR(HEUTE());4;0))+1);HEUTE()<=(DATUM(JAHR(HEUTE());11;0)-WOCHENTAG(DATUM(JAHR(HEUTE());11;0))+1));7200;3600))/86400+25569 dividendRate: =WECHSELN(TEIL(C4;FINDEN("dividendRate";C4)+21;FINDEN(",";TEIL(C4;FINDEN("dividendRate";C4)+21;50))-1);".";",")/1 alle Werte bis auf dividendRate sind aus dem Modul "price", dividendRate aus dem Modul "summaryDetail". Bei dir in der Tabelle in Zelle B4 und C4 (Ergebnis deiner Webdienstabfrage). Und um es für Mitleser etwas transparenter zu machen: In B4 steht: =WEBDIENST("https://query2.finance.yahoo.com/v10/finance/quoteSummary/"&A4&"?modules=price") In A4 befindet sich das Wertpapiersymbol. Diesen Beitrag teilen Link zum Beitrag