haihappen85 Posted September 14, 2019 · Edited September 15, 2019 by haihappen85 Hallo zusammen, ich habe schon viel rum probiert jedoch bin ich noch nicht ganz fertig und nun am Ende meiner Kentnisse. Vielleicht ist hier ja jemand der sich mit Excel Makros gut auskennt. Zu meinem Problem. Ich hab eine Excelliste mit allen Aktien die ich besitze oder die ich beobachte. Ich weiß, dass es Yahoo Finance die Möglichkeit gibt Kurse abzurufen aber das will ich nicht. Ich möchte 1 Jahr zurück alle Schlusskurse in meiner Excelliste haben. Warum? Da ich mir da einige Sachen dazu berechnen möchte um eventuell einen Kauf oder Verkauf zu tätigen. So weit bin ich schon: Ich schaffe es schon über mein Makro die Daten über Onvista in dem Fall ins Excel zu bekommen. Jedoch klappt es leider nicht die Kurse, die ich in Excel kopiere, der richtigen Aktie zuzuordnen. Es würde zwar manuell gehen aber das will ich nicht da es ja schon paar mehr Aktien sind. Leider kann ich mit der Fehlermeldung die am Ende kommt nicht so viel Anfangen und wende mich nun an euch. Vielleicht hat ja jemand eine gute Idee wie man das lösen könnte. Vielen Dank schon mal im voraus. Share this post Link to post
rudizabudi Posted September 16, 2019 Hey Haihappen, ich bin mir nicht ganz sicher, ob ich dein Problem richtig verstehe. Ich hole mir beispielsweise bei meinen Abfragen auf OnVista immer den Aktiennamen aus dem HTML-Code und verwende ihn dann sowohl für den Namen der Abfrage, als auch für das neu erzeugte Sheet für den Table der Kurse. Den Namen hole ich mir hiermit: Dim website As String Dim request As Object Dim response As String Dim html As New HTMLDocument Dim RArray() As String Dim LArray() As String Dim MArray() As String Dim NArray() As String isin = DE0007664039 website = "https://www.onvista.de/aktien/" & isin Set request = CreateObject("MSXML2.XMLHTTP") request.Open "GET", website, False request.setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" request.send response = StrConv(request.responseBody, vbUnicode) html.body.innerHTML = response 'Get Name MArray = Split(response, "'contentName' : ", -1, vbTextCompare) NArray = Split(MArray(1), ",", -1, vbTextCompare) name = NArray(0) Und später benenne ich dann quasi die Query und das Sheet danach mit ActiveWorkbook.Queries.Add name:=name, Formula:= _ [....] ActiveWorkbook.Worksheets.Add ActiveSheet.name = name Wenn ich mich auf die Kurse in meiner Berechnung beziehen möchte, verwende ich etwa so eine Formel: A1: Volkswagen Vz. B1 '=Indirect("A1" & "!:C34")' Share this post Link to post