Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert sind; Die von diesem Forum gesetzten Cookies düfen nur auf dieser Website verwendet werden und stellen kein Sicherheitsrisiko dar. Cookies auf diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Einfacher Dividendenkalender
#2
Notiz 

RE: Einfacher Dividendenkalender

Und hier noch eine Beschreibung, wie die Daten, die im JSON-Format daherkommen, direkt verarbeitet werden können. Die Ausgabe ist dadurch schneller:

Ihr ladet euch von https://github.com/VBA-tools/VBA-JSON das File JsonConverter.bas runter und bindet es als Modul in die vorhandene Datei ein. Im VBA-Editor aktiviert ihr die "Microsoft Scripting Runtime".
(Einfach draufklicken, wenn es matschig aussieht).
   
Anschließend erstellt ihr ein neues Modul und bindet folgenden Kot ein (vorher noch das Tabellenblatt in "Dividenden" umbenennen). 
Code:
Sub Dividendenabfrage()
Dim jsonText As String
Dim jsonObject As Object, item As Object
Dim ws As Worksheet
Dim Zaehler As Integer

Set ws = Worksheets("Dividenden")

' *******************************************************************

Dim urlText As String
Dim urlText2 As String
Dim url_1 As String
    
Dim Datum As Date
Dim Monat As Integer
Dim Dividende As Double
Dim JahrSpalte As Integer



Zaehler = 6
ws.Range("B6:M1000").ClearContents ' sauber machen
JahrSpalte = 2 ' falls die Spalten erweitert werden, hier die aktuelel Spalte des Jahres eintragen. Im Beispiel ist das Spalte 2. Das Jahr steht an B3.
aktjahr = ws.Cells(3, JahrSpalte).Value

Do While Not IsEmpty(ws.Cells(Zaehler, 1).Value)

    Ticker = ws.Cells(Zaehler, 1).Value
' ---------- Token ------------------
    Token = "<hier Token einfügen>"
' ---------- Token ------------------
    url_1 = "https://cloud.iexapis.com/stable/stock/" + Ticker + "/dividends/1y?token=" + Token
    
    Set AB = CreateObject("MSXML2.XMLHTTP")
    AB.Open "GET", url_1, False
    AB.Send
    'url content
    urlText = AB.ResponseText
    urlText2 = AB.ResponseBody
    
    ' *******************************************************************
    
    
    jsonText = urlText
    
    Set jsonObject = JsonConverter.ParseJson(jsonText)
        
    
    For Each item In jsonObject
        Datum = item("paymentDate")
        Dividende = item("amount")
        If Year(Datum) = aktjahr Then
            Monat = Month(Datum)
            ws.Cells(Zaehler, JahrSpalte + Monat - 1).Value = Dividende
        End If
    Next
    Zaehler = Zaehler + 1
Loop

End Sub
Das war es auch schon. Nicht vergessen, das (oder den?) Token einzubinden.

Eine Roh-Datei sieht z.B. so aus:

Code:
[{"exDate":"2019-07-03","paymentDate":"2019-08-05","recordDate":"2019-07-05","declaredDate":"2019-06-05","amount":0.18,"flag":"No Change QoQ","currency":"USD","description":"ABM Industries Declares Quarterly Dividend $0.18 Per Share\t","frequency":"Quarterly","date":"2019-06-12"},{"exDate":"2019-04-03","paymentDate":"2019-05-06","recordDate":"2019-04-04","declaredDate":"2019-03-06","amount":0.18,"flag":"No Change QoQ","currency":"USD","description":"ABM Industries Declares Quarterly Dividend $0.18 Per Share ","frequency":"Quarterly","date":"2019-06-12"},{"exDate":"2019-01-02","paymentDate":"2019-02-04","recordDate":"2019-01-03","declaredDate":"2018-12-18","amount":0.18,"flag":"Increase","currency":"USD","description":"ABM Industries Hikes Quarterly Dividend 2.86%","frequency":"Quarterly","date":"2019-06-12"},{"exDate":"2018-10-03","paymentDate":"2018-11-05","recordDate":"2018-10-04","declaredDate":"2018-09-06","amount":0.175,"flag":"No Change QoQ","currency":"USD","description":"ABM Industries Declares Quarterly Dividend of $0.175 Per Share","frequency":"Quarterly","date":"2019-06-12"},{"exDate":"2018-07-03","paymentDate":"2018-08-06","recordDate":"2018-07-05","declaredDate":"2018-06-06","amount":0.175,"flag":"No Change QoQ","currency":"USD","description":"ABM Industries Declares Quarterly Dividend of $0.175 Per Share","frequency":"Quarterly","date":"2019-06-12"}]

Sie wird in ihre Items zerlegt und die Werte den entsprechenden Items zugewiesen.

Wer mehr Informationen raussaugen möchte, muss die Zeilen

Code:
       Datum = item("paymentDate")
       Dividende = item("amount")
entsprechend erweitern


Nachrichten in diesem Thema
Einfacher Dividendenkalender - von Beth - 10.06.2019, 12:09
RE: Einfacher Dividendenkalender - von Beth - 12.06.2019, 08:05
RE: Einfacher Dividendenkalender - von fahri - 12.06.2019, 17:42
RE: Einfacher Dividendenkalender - von Beth - 12.06.2019, 21:15
RE: Einfacher Dividendenkalender - von fahri - 13.06.2019, 10:02
RE: Einfacher Dividendenkalender - von Beth - 13.06.2019, 10:19
RE: Einfacher Dividendenkalender - von Banker - 12.06.2019, 09:06
RE: Einfacher Dividendenkalender - von jf2 - 13.06.2019, 10:14
RE: Einfacher Dividendenkalender - von fahri - 13.06.2019, 10:25
RE: Einfacher Dividendenkalender - von fahri - 14.06.2019, 10:14
RE: Einfacher Dividendenkalender - von Beth - 14.06.2019, 10:58
RE: Einfacher Dividendenkalender - von fahri - 14.06.2019, 13:03
RE: Einfacher Dividendenkalender - von fahri - 05.08.2019, 13:55
RE: Einfacher Dividendenkalender - von fahri - 05.08.2019, 13:56
RE: Einfacher Dividendenkalender - von fahri - 05.08.2019, 14:02
RE: Einfacher Dividendenkalender - von Beth - 08.09.2019, 08:44
RE: Einfacher Dividendenkalender - von BaLü - 05.08.2019, 17:11
RE: Einfacher Dividendenkalender - von fahri - 08.09.2019, 09:00
RE: Einfacher Dividendenkalender - von fahri - 20.09.2019, 14:14
RE: Einfacher Dividendenkalender - von Beth - 24.09.2019, 10:18
RE: Einfacher Dividendenkalender - von fahri - 24.09.2019, 14:01

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste