Hallo zusammen, ich benötige mal wieder eure Hilfe. Meine Aktienkurs Aktualisierung funktioniert nicht mehr (siehe Mustertabelle). Yahoo soll umgestellt haben, finde aber keine genauen Angaben wie ich meinen Code ändern muss um "historische Aktienwerte" Zeitraum 5 Jahre in mein Tabellenblatt einlesen kann. Kann mir jemand dabei helfen? Danke schon mal im Voraus!
Hallo Lupo1, Danke für deine schnelle Antwort. Es geht, ich kann es nur in VBA nicht umsetzen.
Folgender Werdegang: 1. https://de.finance.yahoo.com/ ...aufrufen 2. Mit Benutzernamen und Passwort anmelden 3. Link generieren und an Webseite übergeben... https://de.finance.yahoo.com/quote/ADS.DE/history?p=ADS.DE 4. Kürzel ersetzen durch... = Zellinhalt im Tabellenblatt "Depot" Spalte 7 4a. Yahoo generiert eine CSV-Datei und es wird der "Speichern unter" Dialog aufgerufen 5. Speicherort CSV z.B. adidas ... E:\Depot\CSV\ADS.DE.csv 6. Laden CSV alle im Ordner befindlichen CSV Dateien... E:\Depot\CSV\*.CSV 7. Name des Tabellenblattes = Name des Kürzels z.B. "ADS.DE"
Wenn ich diese Reihenfolge händisch jeweils anwende, klappt es! Aber wie setzte ich das in VBA um?
zumindest 4a. passiert wohl außerhalb von Excel. Vielleicht klappt es ja auch mit einer normalen Webabfrage, die man in Excel formuliert, nachdem Du Dich bei Yahoo angemeldet hast (manuell oder per VBA).
Hallo zusammen, habe gestern etwas im Web recherchiert und ein andere Webseite gefunden, von der es möglich ist historische Aktienkurse nach Excel zu importieren. Leider bin ich nicht in der Lage ein Makro zu erstellen, das meinen Vorstellungen entspricht, da fehlen mir noch Kentnisse. Mit dem Rekorder hat es nicht funktioniert.
So funktioniert es händisch. 1. Link aus Tabelle Kürzel Spalte G kopieren als Textimport im PowerQuery eingeben 2. Spalte A der Webabfrage als Datum formatieren 3. Laden der Webtabelle nach Excel in neue Tabelle 4. Neue Tabelle mit dem Namen des entsprechenden Kürzels umbenennen 5. In neuer Tabelle die Spalten B-E als Zahl mit 3 Kommastellen formatieren
Alles ganz einfach (ha,ha). Kann mir jemand bei der Erstellung eines Makros behilflich sein?
Hallo Bernie Ich mag Deine xlsm - Datei nicht herunterladen: den Rechner nicht gefährden. In meinem Fundus habe ich zwei Makros gefunden, die Du vielleicht zurechtbiegen kannst:
Code:
Sub Kurse_1() Application.ScreenUpdating = False Application.DisplayAlerts = False On Error GoTo Ende 'zunächst Kurse ins temporäre Hilfsblatt Kurse reinholen: Worksheets.Add.Name = "Kurse" Sheets("Kurse").Select With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://www.onvista.de/devisen/devisenkurse.html" _ , Destination:=Range("A1")) .WebSelectionType = xlEntirePage .Refresh BackgroundQuery:=False End With Cells.UnMerge 'Kurse in Tabelle1 übertragen: Sheets("Tabelle1").Select Range("O2").FormulaR1C1 = "=Kurse!R[56]C[-11]" Range("O3").FormulaR1C1 = "=Kurse!R[51]C[-11]" Range("O4").FormulaR1C1 = "=Kurse!R[49]C[-11]" Range("O2:O4").Copy Range("O2:O4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 'temporäres Hilfsblatt Kurse löschen: Sheets("Kurse").Delete Ende: Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
Code:
Sub Kurse_2() Application.ScreenUpdating = False Application.DisplayAlerts = False On Error GoTo Ende 'zunächst Kurse ins temporäre Hilfsblatt Kurse reinholen: Worksheets.Add.Name = "Kurse" With Sheets("Kurse").QueryTables.Add(Connection:= _ "URL;http://fr.finance.yahoo.com/q/bc?s=EURPHP=X&t=3m&l=on&z=m&q=l&c=" _ , Destination:=Range("A1")) .WebSelectionType = xlEntirePage .Refresh BackgroundQuery:=False End With 'Kurs in Tabelle1 übertragen: With Sheets("Tabelle1") .Range("O2").Formula = "=LEFT(Kurse!A87,7)" .Range("O2").Value = .Range("O2").Value End With 'temporäres Hilfsblatt Kurse löschen: Sheets("Kurse").Delete Ende: Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
Folgende(r) 1 Nutzer sagt Danke an Helvetier für diesen Beitrag:1 Nutzer sagt Danke an Helvetier für diesen Beitrag 28 • Bernie