Public Function Ykurs(Ticker As String, ZeitRaum As Variant) As Double Const UnixStartDatum As Date = "01.01.1970" Dim Kurs As String Dim QuoteURL As String Dim Kursdatum As Date Dim UnixDatum As String Dim Kommazaehler As Integer Dim AdjustedClose As Boolean Dim XML As Object On Error GoTo Fehler AdjustedClose = False If ZeitRaum = "0" Then Kursdatum = Date If ZeitRaum = "YTD" Then Kursdatum = DateValue("31.12." & Year(Date) - 1) If ZeitRaum = "1M" Then Kursdatum = DateAdd("m", -1, Date) If ZeitRaum = "3M" Then Kursdatum = DateAdd("m", -3, Date) If ZeitRaum = "6M" Then Kursdatum = DateAdd("m", -6, Date) If ZeitRaum = "1Y" Then Kursdatum = DateAdd("yyyy", -1, Date) If ZeitRaum = "3Y" Then Kursdatum = DateAdd("yyyy", -3, Date) If ZeitRaum = "5Y" Then Kursdatum = DateAdd("yyyy", -5, Date) If ZeitRaum = "10Y" Then Kursdatum = DateAdd("yyyy", -10, Date) UnixDatum = Kursdatum - UnixStartDatum UnixDatum = (UnixDatum * 86400) + 86400 QuoteURL = "https://query1.finance.yahoo.com/v7/finance/download/" & Ticker & "?period1=" & UnixDatum - 864000 & "&period2=" & UnixDatum & "&interval=1d&events=history&includeAdjustedClose=true" Set XML = CreateObject("MSXML2.ServerXMLHTTP") XML.Open "GET", QuoteURL, False XML.send Kurs = XML.responseText Kommazaehler = Len(Kurs) - Len(Replace(Kurs, ",", "")) If AdjustedClose = True Then Kurs = Split(Kurs, ",")(Kommazaehler - 1) Else Kurs = Split(Kurs, ",")(Kommazaehler - 2) Kurs = Replace(Kurs, ".", ",") Ykurs = CDbl(Kurs) Set XML = Nothing Exit Function Fehler: Ykurs = 0 Set XML = Nothing End Function ' Public Function Yproz(Ticker As String, ZeitRaum As Variant) As Double Const UnixStartDatum As Date = "01.01.1970" Dim KursHeute As Double Dim HistoKurs As Double Dim QuoteURL As String Dim Kursdatum As Date Dim UnixDatum As String Dim Kommazaehler As Integer Dim AdjustedClose As Boolean Dim XML As Object On Error GoTo Fehler AdjustedClose = False If ZeitRaum = "0" Then Kursdatum = Date If ZeitRaum = "YTD" Then Kursdatum = DateValue("31.12." & Year(Date) - 1) If ZeitRaum = "1M" Then Kursdatum = DateAdd("m", -1, Date) If ZeitRaum = "3M" Then Kursdatum = DateAdd("m", -3, Date) If ZeitRaum = "6M" Then Kursdatum = DateAdd("m", -6, Date) If ZeitRaum = "1Y" Then Kursdatum = DateAdd("yyyy", -1, Date) If ZeitRaum = "3Y" Then Kursdatum = DateAdd("yyyy", -3, Date) If ZeitRaum = "5Y" Then Kursdatum = DateAdd("yyyy", -5, Date) If ZeitRaum = "10Y" Then Kursdatum = DateAdd("yyyy", -10, Date) UnixDatum = Kursdatum - UnixStartDatum UnixDatum = (UnixDatum * 86400) + 86400 QuoteURL = "https://query1.finance.yahoo.com/v7/finance/download/" & Ticker & "?period1=" & UnixDatum - 864000 & "&period2=" & UnixDatum & "&interval=1d&events=history&includeAdjustedClose=true" Set XML = CreateObject("MSXML2.ServerXMLHTTP") XML.Open "GET", QuoteURL, False XML.send Kurs = XML.responseText Kommazaehler = Len(Kurs) - Len(Replace(Kurs, ",", "")) If AdjustedClose = True Then Kurs = Split(Kurs, ",")(Kommazaehler - 1) Else Kurs = Split(Kurs, ",")(Kommazaehler - 2) Kurs = Replace(Kurs, ".", ",") HistoKurs = CDbl(Kurs) Kursdatum = Date UnixDatum = Kursdatum - UnixStartDatum UnixDatum = (UnixDatum * 86400) + 86400 QuoteURL = "https://query1.finance.yahoo.com/v7/finance/download/" & Ticker & "?period1=" & UnixDatum - 864000 & "&period2=" & UnixDatum & "&interval=1d&events=history&includeAdjustedClose=true" Set XML = CreateObject("MSXML2.ServerXMLHTTP") XML.Open "GET", QuoteURL, False XML.send Kurs = XML.responseText Kommazaehler = Len(Kurs) - Len(Replace(Kurs, ",", "")) If AdjustedClose = True Then Kurs = Split(Kurs, ",")(Kommazaehler - 1) Else Kurs = Split(Kurs, ",")(Kommazaehler - 2) Kurs = Replace(Kurs, ".", ",") KursHeute = CDbl(Kurs) Yproz = (KursHeute / HistoKurs) - 100 / 100 Set XML = Nothing Exit Function Fehler: HistoKurs = 0 KursHeute = 0 Yproz = 0 Set XML = Nothing End Function