Hallo zusammen,
Ich bin noch ganz neu dabei und beschäftige mich erst seit einer Woche mit VBAs, besonders über www.excel-vba-lernen.de. Ich spiele derzeit mit dem Aufbau eines VBA-Makros für eine Excel-Tabelle herum, um eine Aktien-Beobachtungsliste aufzusetzen. Das Einlesen des Kurses der Aktien funktioniert eigentlich wunderbar, solange ich das Makro über F8 (langsam) stufenweise ausführe. Bei schnellem drücken von F8 hintereinander und beim Ausführen des gesamten Makros werden allerdings Kurse der vorangehenden Aktie in der folgenden Zeile zum Teil wiederholt. Beim Ausführen des gesamten Makro kommt manchmal auch ein Laufzeitfehler. Hier mal ein Screenshot von den Dopplungen der Kurse und dem Fehler:
https://ibb.co/LRkGH5N
Kann man da z. B. soetwas wie einen "Puffer" einbauen, damit das Programm sich Zeit nimmt die korrekten Daten zu laden?
Hier der Code:
Sub Aktienscreener()
Dim appIE As Object
Set appIE = CreateObject("internetexplorer.application")
Dim Aktie As String
Dim size As Integer
Dim Zahl As Integer
Dim Preis As String
size = WorksheetFunction.CountA(Worksheets(1).Columns(1))
For Zahl = 2 To size
Aktie = Range("A" & Zahl & "")
With appIE
.Navigate "https://finance.yahoo.com/quote/" & Aktie & "?p=" & Aktie & ""
.Visible = False
End With
Do While appIE.Busy
DoEvents
Loop
Set allRowOfData = appIE.document.getElementsByClassName("Ta(end) Fw(600) Lh(14px)")
Preis = allRowOfData(0).innerText
Range("B" & Zahl & "").Value = Preis
Next
Range("A1:M103").Sort Key1:=Range("A2"), Header:=xlYes
End Sub
|