Oli Garch Posted August 15, 2022 vor 11 Minuten von driller: Test: Datei gestartet und DTE übernehmen--> s. screenshot u. keine Eintrage in Tab Histo.. mehrere Tage eingestellt : wird in msgbox angezeigt, Kurshisto leer Ist ja irre. Kann ich gerade nicht nachvollziehen. Habe mir auch die Datei heruntergeladen, gelben Warnhinweis mit ok bestätigt, gespeichert, DTE in Formular eingetragen und alles ok. Hast du vielleicht bei Excel oder Windows ein anderes Gebietsschema (Sprache, Tausenderzeichen ...) eingestellt? Share this post Link to post
driller Posted August 15, 2022 vor 1 Minute von Oli Garch: Ist ja irre. Kann ich gerade nicht nachvollziehen. Habe mir auch die Datei heruntergeladen, gelben Warnhinweis mit ok bestätigt, gespeichert, DTE in Formular eingetragen und alles ok. Hast du vielleicht bei Excel oder Windows ein anderes Gebietsschema (Sprache, Tausenderzeichen ...) eingestellt? hast du Zeit für chat ? skype, teamviewer, ? gehe davon aus, dass setups bei mir anders sind: win10, excel 2016 = (2013), engl., T-Zeichen , Share this post Link to post
Oli Garch Posted August 15, 2022 vor 2 Minuten von driller: hast du Zeit für chat ? skype, teamviewer, ? das geht gerade schlecht. Aber der Hinweis auf engl. wird wohl die Lösung sein. (was ist T-Zeichen?). Um das zu berücksichtigen und zu testen werde ich etwas Zeit benötigen. Share this post Link to post
driller Posted August 15, 2022 vor 1 Minute von Oli Garch: das geht gerade schlecht. Aber der Hinweis auf engl. wird wohl die Lösung sein. (was ist T-Zeichen?). Um das zu berücksichtigen und zu testen werde ich etwas Zeit benötigen. werd im vba explorer mal schrittweise durchforsten ! melde mich später wieder, danke Share this post Link to post
Oli Garch Posted August 15, 2022 @driller habe mal zum Probieren mein Excel auf Englisch und Dezimaltrennzeichen auf Punkt umgestellt, es funktioniert aber noch immer ohne Fehler, nur dass die Kommas jetzt Punkte sind (entspricht wohl im Ganzen noch nicht deinem System). Wenn du selber mal testest, deaktiviere mal im Sub "KursDownload" die 15. Zeile: Application.DisplayAlerts = False. Dann müsste das Makro an der fehlerhaften Stelle stehenbleiben. Dann sehen wir weiter. Kurse werden ja bei dir erst einmal geladen, wie aus deinem Screenshot hervorgeht. Erst später entsteht der Fehler. Share this post Link to post
driller Posted August 16, 2022 Test- Zwischenergebnis: die msgbox entält über 'XML.responseText' die Kursdaten. danach wird nichts auf die Tabelle 'KursHisto' geschrieben. soweit bin ich jetzt gekommen. Irgend ein Tipp/Hinweis ? Share this post Link to post
Oli Garch Posted August 16, 2022 Leider konnte ich deinen Fehler bei mir nicht nachstellen. Irgendwie muss es wohl mit deiner Ländereinstellung zusammenhängen. Du musst herausfinden, an welcher Stelle im Makro der Fehler verursacht wird. Da ich nicht weiß, wie weit du dich auskennst, beschreibe ich mal ausführlich wie ich vorgehen würde: - Datei öffnen, mit Alt+F11 den VB-Editor starten - im VBA-Project der Datei Modul1 auswählen - finde das Makro mit dem Namen KursDownload - setze einen Haltepunkt etwa bei Zeile "XML.send", indem du mit der Maus in die senkrechte Leiste gleich links neben dem Code klickst. Es erscheint ein dicker Punkt in der Leiste und die Codezeile rechts daneben wird markiert. - Nach dieser Vorbereitung lass dir wieder die Excel-Tabelle anzeigen und starte ganz normal den Eingabedialog - mit dem Klick auf den "Übernahme"-Button in der Eingabemaske startest du das Makro - es wird jetzt automatisch das VB-Editor-Fenster angezeigt - das Makro ist am vorher eingestellten Haltepunkt gestoppt. Die Codezeile ist gelb unterlegt - jetzt kannst du auf der Tastatur mit der Taste F8 Zeile für Zeile das Makro abarbeiten (Einzelschritt) Entscheidend ist, an welcher Zeile der Fehler passiert. Von dieser Zeile springt bei einem Fehler das Makro zur Codezeile "Errorhandler:". Eigentlich müsste auch eine Fehlermeldung angezeigt und das Makro gestoppt werden, wenn du die Zeile "Application.DisplayAlerts = False" deaktivierst, indem ein Hochkomma (') an den Zeilenanfang gesetzt wird. Ich bin gespannt auf das Ergebnis. Share this post Link to post
Flughafen Posted December 26, 2022 Hallo Leute, wie kann ich bitte von Tradegate den Last-Kurs in Excel (VBA) einesen? Z.B. https://www.tradegate.de/orderbuch.php?isin=IE00BFY0GT14 Es gab in diesem Thema bereits diese Frage, aber die Antwort ist bereits gelöscht. Ich habe mir auch den VBA Macro-Code in der Datei YahooHistoQuotes v2.02 von @Oli Garch angesehen. Insgesamt ist die Logik verständlich, aber im Detail zu kompliziert, weil es neben dem Einlesen die Makros dort noch viele andere Funktionen gibt. Diese Funktionen lesen die Kurse in einer Schleife für mehrere Tage ein, mit Hilfe einer Form für manuelle Eingabe und speichern die Ergebnisse in einer anderen, externen Datei. In dieser Komplexität blicke ich das reine Einlesen leider nicht genau durch. Meine Excel-VBA-Kenntnisse sind leider nicht ausreichend, um all diese Makros zu verstehen. Ich brauche ein Makro, wenn ich es ausführe, soll es den jetzigen Kurs von der Tradegate-Seite in z.B. die feste Excel-Zelle M2 reinschreiben. Den Kurs für jetzt, nicht für andere Tage. In dem aktuellen Excel-Sheet. Kann mir bitte jemand helfen? Viele Grüße, Flug Share this post Link to post
Der T Posted December 26, 2022 Am 1.5.2022 um 12:54 von Oli Garch: Ab Excel 2013. Früher gab es ja mal eine Yahoo finance API. Da konnte man sehr komfortabel Kurse und andere Daten laden. Die Zeiten sind lange vorbei. Die Daten sind aber alle noch zu finden, wenn man die URLs kennt. Im Netz findet man auch zahlreiche Nachbauten der Finance-API, meist in Python geschrieben auch mit Tutorials (meist in Englisch), wovon ich aber eher nichts verstehe. Was ich herausgefunden habe, ist eine URL, mit der man ca. 30 Finance-Module abrufen kann. Die Ausgabe der Daten erfolgt im json-Format. Meine bevorzugte Methode ist, die Daten mit der Excel-Funktion Webdienst abzurufen, da hierbei die Beschränkung auf 32767 Zeichen den Abruf nicht behindert. Mit VBA lässt sich auch recht einfach eine Funktion basteln. Hier noch einmal die URL zum nachvollziehen (Beispiel AAPL und dem Modul in dem lastDividendDate zu finden ist): https://query1.finance.yahoo.com/v10/finance/quoteSummary/AAPL?modules=defaultKeyStatistics Weitere Module mit mehr Daten sind (in der URL hinter modules= einsetzen): assetProfile recommendationTrend cashflowStatementHistory indexTrend defaultKeyStatistics industryTrend quoteType incomeStatementHistory fundOwnership summaryDetail insiderHolders calendarEvents upgradeDowngradeHistory price balanceSheetHistory earningsTrend secFilings institutionOwnership majorHoldersBreakdown balanceSheetHistoryQuarterly earningsHistory esgScores summaryProfile netSharePurchaseActivity insiderTransactions sectorTrend incomeStatementHistoryQuarterly cashflowStatementHistoryQuarterly earnings pageViews financialData Grund für die ungewöhnlich lange Abfrage für das Dividendendatum ist, dass ich für das Herausfiltern der gesuchten Zeichenfolge, die Webdienst-Funktion mehrfach verwenden muss. Falls sich in deiner Tabelle die Position des Wertpapiersymbols einmal ändern sollte, muss in der Abfrage die Position 4mal geändert werden. In deinem Beispiel steht das Symbol AAPL in Zelle B2 und muss also 4mal auf die neue Zellposition angepasst werden. Glücklicherweise ist die Funktion innerhalb der Spalte kopierbar. Das 4-malige wiederholen von WEBDIESNT lässt sich mit der LET-Funktion umgehen. Dann sieht es so aus und man muss den Bezug auf B2 nur an einer Stelle ändern: LET(url;WEBDIENST("https://query1.finance.yahoo.com/v10/finance/quoteSummary/"&B2&"?modules=defaultKeyStatistics");TEIL(TEIL(url;FINDEN("lastDividendDate";url);60);FINDEN("fmt";TEIL(url;FINDEN("lastDividendDate";url);60))+6;10)) Weißt Du zufällig, warum die Werte aus WEBDIENST nicht zu den auf der Weboberfläche angezeigten passen? Als Beispiel hier das Forward P/E: Share this post Link to post
Der T Posted December 26, 2022 · Edited December 26, 2022 by Der T vor 3 Stunden von Flughafen: Hallo Leute, wie kann ich bitte von Tradegate den Last-Kurs in Excel (VBA) einesen? Z.B. https://www.tradegate.de/orderbuch.php?isin=IE00BFY0GT14 Es gab in diesem Thema bereits diese Frage, aber die Antwort ist bereits gelöscht. Ich habe mir auch den VBA Macro-Code in der Datei YahooHistoQuotes v2.02 von @Oli Garch angesehen. Insgesamt ist die Logik verständlich, aber im Detail zu kompliziert, weil es neben dem Einlesen die Makros dort noch viele andere Funktionen gibt. Diese Funktionen lesen die Kurse in einer Schleife für mehrere Tage ein, mit Hilfe einer Form für manuelle Eingabe und speichern die Ergebnisse in einer anderen, externen Datei. In dieser Komplexität blicke ich das reine Einlesen leider nicht genau durch. Meine Excel-VBA-Kenntnisse sind leider nicht ausreichend, um all diese Makros zu verstehen. Ich brauche ein Makro, wenn ich es ausführe, soll es den jetzigen Kurs von der Tradegate-Seite in z.B. die feste Excel-Zelle M2 reinschreiben. Den Kurs für jetzt, nicht für andere Tage. In dem aktuellen Excel-Sheet. Kann mir bitte jemand helfen? Viele Grüße, Flug Probiere mal die Excel-Funktion: =LET(url;WEBDIENST("https://www.tradegate.de/orderbuch.php?isin=IE00BFY0GT14");Anfang;FINDEN("last";url)+6;Ende;FINDEN("</strong";url;Anfang);TEIL(url;Anfang;Ende-Anfang)) Einfach in deine Wunschzelle eintragen. Share this post Link to post
Oli Garch Posted December 26, 2022 vor 30 Minuten von Der T: Weißt Du zufällig, warum die Werte aus WEBDIENST nicht zu den auf der Weboberfläche angezeigten passen? Als Beispiel hier das Forward P/E: den Unterschied kann ich mir auch nicht erklären. Da muss man wohl mit einer gewissen Streuung rechnen. Ich habe mal zum Vergleich die daten von Finviz herangezogen und in ein Google-Sheet geladen: Der Forward P/E-Wert kommt dem von Yahoo-Webdienst doch sehr nahe. Übrigens: Die Excel-Funktion LET kannte ich noch nicht. Sie kann die Formel doch recht schön vereinfachen. Hat bei mir dann doch nicht funktioniert. Geht wohl erst ab Version 2021 oder MS 365. Ich habe hier noch Excel 2019. Um noch mal auf das Problem von @Flughafen zurückzukommen: Tradegate ist da nicht gerade die beste Idee. In den Nutzungsbedingungen steht da recht deutlich: Die Nutzung des Internetangebots durch automatisiert bzw. maschinell erzeugte Zugriffe, bspw. mit Hilfe von Programmen oder Skripten, ist nicht gestattet. In deinem Fall funktioniert aber auch Yahoo recht gut, da Yahoo für deinen ETF auch ein Symbol hat: SPPW.DE. Die Funktion, die du dafür nutzen könntest: Public Function ykurs(Ticker As String) As Double Dim Kurs As String Dim QuoteURL As String Dim XML As Object On Error GoTo Fehler QuoteURL = "https://query1.finance.yahoo.com/v7/finance/download/" & Ticker Set XML = CreateObject("MSXML2.ServerXMLHTTP") XML.Open "GET", QuoteURL, False XML.send Kurs = XML.responseText Kurs = Split(Kurs, ",")(11) Kurs = Replace(Kurs, ".", ",") ykurs = CDbl(Kurs) Set XML = Nothing Exit Function Fehler: ykurs = 0 Set XML = Nothing End Function Die Funktion in ein VBA-Modul kopieren und in deine Zelle =yKurs("SPPW.DE") eintragen (Statt Symbol auch Zellbezug möglich). Und ohne Makro: =WERT(WECHSELN(TEIL(WEBDIENST("https://query1.finance.yahoo.com/v7/finance/quote?symbols="&$M1);SUCHEN("regularMarketPrice";WEBDIENST("https://query1.finance.yahoo.com/v7/finance/quote?symbols="&$M1))+20;FINDEN(",";TEIL(WEBDIENST("https://query1.finance.yahoo.com/v7/finance/quote?symbols="&$M1);SUCHEN("regularMarketPrice";WEBDIENST("https://query1.finance.yahoo.com/v7/finance/quote?symbols="&$M1))+20;18))-1);".";",") Diese Formel geht davon aus, dass das Symbol für den gesuchten Kurs in Zelle M1 steht. Die Formel selbst trägst du in die Zelle ein, in der du den Wert haben möchtest. Dein Wunsch war ja M2. Share this post Link to post
Flughafen Posted December 26, 2022 @Oli Garch: Vielen Dank, das Makro funktioniert mit meinem Excel 2013 perfekt! Viele Grüße und schöne Feiertage, Flug Share this post Link to post
Bigwigster Posted March 20, 2023 Vielleicht für den einen oder Anderen auch interessant. Ich hatte immer das Problem die aktuellen Kurse von nicht börsengehandelten Fonds in google docs automatisiert reinzubekommen. Mithilfe von ChatGPT habe ich jetzt folgende Lösung: =LEFT(INDEX(IMPORTHTML("https://www.onvista.de/fonds/handelsplaetze/DIMENSIONAL-EMERGING-MARKETS-SUSTAINABILITY-CORE-EQUITY-FUND-EUR-ACC-Fonds-IE00BLCGQT35"; "table"; 1); 2; 3); FIND("EUR"; INDEX(IMPORTHTML("https://www.onvista.de/fonds/handelsplaetze/DIMENSIONAL-EMERGING-MARKETS-SUSTAINABILITY-CORE-EQUITY-FUND-EUR-ACC-Fonds-IE00BLCGQT35"; "table"; 1); 2; 3))-1) Sicher nicht sonderlich elegant, aber es wird die erste Tabelle von der jeweiligen onvista website ausgelesen und nur der interessante Zahlenwert ausgegeben. Selber wäre ich darauf niemals gekommen Share this post Link to post
migieger Posted April 19, 2023 · Edited April 19, 2023 by migieger Präzisierung Habe nur ich Probleme Kurse von Avira ins Spreadsheet zu importieren? Die wollen für den Download historischer Daten (csv) inzwischen einen Account? Verwendete Formel in Libreoffice Calc (im Feld E4 steht die Ariva "secu"), die die vergangenen Monate einwandfrei tat: =WERT(TEIL(WEBDIENST("http://www.ariva.de/quote/historic/historic.csv?secu="&$E4&"&boerse_id=12&min_time="&TEXT(DATUM(JAHR(HEUTE());MONAT(HEUTE());TAG((HEUTE()-1)));"[$-407]tt.mm.jjjj")&"&max_time="&TEXT(DATUM(JAHR(HEUTE());MONAT(HEUTE());TAG((HEUTE())));"[$-407]tt.mm.jjjj"));FINDEN("#";WECHSELN(WEBDIENST("http://www.ariva.de/quote/historic/historic.csv?secu="&$E4&"&boerse_id=12&min_time="&TEXT(DATUM(JAHR(HEUTE());MONAT(HEUTE());TAG((HEUTE()-1)));"[$-407]TT.MM.JJJJ")&"&max_time="&TEXT(DATUM(JAHR(HEUTE());MONAT(HEUTE());TAG((HEUTE())));"[$-407]TT.MM.JJJJ"));";";"#";10))+1;FINDEN("#";WECHSELN(WEBDIENST("http://www.ariva.de/quote/historic/historic.csv?secu="&$E4&"&boerse_id=12&min_time="&TEXT(DATUM(JAHR(HEUTE());MONAT(HEUTE());TAG((HEUTE()-1)));"[$-407]tt.mm.jjjj")&"&max_time="&TEXT(DATUM(JAHR(HEUTE());MONAT(HEUTE());TAG((HEUTE())));"[$-407]tt.mm.jjjj"));";";"#";11))-FINDEN("#";WECHSELN(WEBDIENST("http://www.ariva.de/quote/historic/historic.csv?secu="&$E4&"&boerse_id=12&min_time="&TEXT(DATUM(JAHR(HEUTE());MONAT(HEUTE());TAG((HEUTE()-1)));"[$-407]TT.MM.JJJJ")&"&max_time="&TEXT(DATUM(JAHR(HEUTE());MONAT(HEUTE());TAG((HEUTE())));"[$-407]TT.MM.JJJJ"));";";"#";10))-1)) Share this post Link to post
chirlu Posted April 19, 2023 vor 20 Minuten von migieger: Die wollen für den Download historischer Daten (csv) inzwischen einen Account? Ja, ist mindestens seit Anfang Februar schon so. Share this post Link to post
migieger Posted April 19, 2023 Hm, der Abruf hat definitiv ohne account mit obiger Formel noch am Fr. und Wo.ende (14./15./16.04.) geklappt. Also hängt's an was anderem... nur was? Share this post Link to post
chirlu Posted April 19, 2023 vor 1 Stunde von migieger: Also hängt's an was anderem... Denke ich nicht, sondern Ariva wird den Accountzwang jetzt erst scharfgeschaltet haben. Share this post Link to post
migieger Posted April 19, 2023 vor 52 Minuten von chirlu: Denke ich nicht, sondern Ariva wird den Accountzwang jetzt erst scharfgeschaltet haben. Gut möglich, das wäre dann leider das Ende der Kursabfrage via Avira, weil im Download-Link User/Password nicht abgefragt werden :-( Nur, um sicher zu gehen: fragt jemand ebenfalls Kurse bei Avira für's Spreadsheet ab? Gibt's da die gleichen Probleme? Und, gibt es eine andere Möglichkeit an Kurse für's Spreadsheet zu kommen (außer Yahoo Finance, deren Kurse sind leider falsch/ungenau)? Onvista wäre gut, habe aber keine Abfrage-Möglichkeit dafür gefunden... Share this post Link to post
leoluchs Posted April 19, 2023 vor 33 Minuten von migieger: Nur, um sicher zu gehen: fragt jemand ebenfalls Kurse bei Avira für's Spreadsheet ab? Gibt's da die gleichen Probleme? Fürs Spreadsheet werden ETF- und Anleihenkurse abgefragt. Bisher funktioniert das nach diesem Verfahren: Share this post Link to post
akista Posted April 19, 2023 · Edited April 19, 2023 by akista Hallo. Bei mir funktioniert heute https://query1.finance.yahoo.com/v7/finance/quote?symbols= mit den angeschlossenen Symbolen nicht mehr. Nutzt das noch jemand und hat das gleiche Problem? Edit: Excel 2019 Share this post Link to post
migieger Posted April 20, 2023 · Edited April 20, 2023 by migieger vor 15 Stunden von leoluchs: Fürs Spreadsheet werden ETF- und Anleihenkurse abgefragt. Bisher funktioniert das nach diesem Verfahren: Danke für die Info, daß das weiterhin ohne Account funktioniert. Den Link kannte ich ("meine" Formel beruht ja zu großen Teilen auf Oli Garchs Hinweisen). Blöderweise gibt's in Libreoffice Calc die Funktion IMPORTXML nicht... Muß wohl tiefer graben... vor 12 Stunden von akista: Hallo. Bei mir funktioniert heute https://query1.finance.yahoo.com/v7/finance/quote?symbols= mit den angeschlossenen Symbolen nicht mehr. Nutzt das noch jemand und hat das gleiche Problem? Edit: Excel 2019 Ergibt seit gestern auch bei mir Fehler, mit Libreoffice Calc (keine Daten)... Share this post Link to post
leoluchs Posted April 20, 2023 Ich verwende ein Google-Spreadsheet. In Libre habe ich es nicht ausprobiert. Share this post Link to post
UdonThani Posted April 20, 2023 vor 16 Stunden von akista: Hallo. Bei mir funktioniert heute https://query1.finance.yahoo.com/v7/finance/quote?symbols= mit den angeschlossenen Symbolen nicht mehr. Nutzt das noch jemand und hat das gleiche Problem? Edit: Excel 2019 Habe das gleiche Problem mit Office 365.... wäre über eine Lösung / Alternative dankbar. Share this post Link to post
ChuckysEnkel Posted April 20, 2023 1 hour ago, UdonThani said: Habe das gleiche Problem mit Office 365.... wäre über eine Lösung / Alternative dankbar. +1, leider... Share this post Link to post