11.11.2018, 17:06
Hallo liebe Gemeinde,
ich habe ein kleines Problem, was auf Dauer ziemlich nervig ist.
Kurz vorab: Ich nutze MS Office 365 und habe mir eine Excel Tabelle mit einem Makro gebaut. In der Tabelle sollen automatisiert Aktienkurse und Fundamentaldaten abgefragt und ausgewertet werden.
Dazu habe ich in einem extra Reiter eine Liste erstellt mit den Links, die nacheinander aufgerufen werden sollen. Nach jedem einzelnen Aufruf extrahieren Formeln aus einem temporären Excel Blatt die entsprechenden Werte. Danach werden die Inhalte des temporären Blatts gelöscht und die nächste Abfrage startet. Und so geht das weiter bis alle Links durch sind.
Das Makro stürzt aber bei 4 von 5 Fällen ab. Excel reagiert nicht mehr und ich muss neu starten. Ab und zu geht alles glatt.
Wenn das Makro abstürzt, dann nicht immer an der gleichen Stelle.
Ich vermute, dass ich irgendwas rein programmiert habe, was auch einfacher gelöst werden kann und v.a. stabiler.
Auch hatte ich mal vermutet, dass die Website meine Anfragen ggf. sperrt, weshalb ich es mit Pausen zwischen den einzelnen Abfragen von bis zu 60 Sekunden versucht habe. Das Resultat war aber das gleiche :(
Was mir noch aufgefallen ist: Wenn ich neben der Ausführung des Makros parallel am Rechner arbeite oder surfe, dann scheint die Absturzrate der Makros sehr viel geringer zu sein. Vielleicht bilde ich es mir auch nur ein, oder vielleicht ist das ein Indiz für irgendeinen Fehler ....
Da ich nicht so erfahren mit Makros bin hoffe ich, dass mir hier jemand helfen kann.
Danke schon einmal an alle, die sich das ansehen!!
Liebe Grüße
Manuel
Das Makro sieht folgendermaßen aus:
ich habe ein kleines Problem, was auf Dauer ziemlich nervig ist.
Kurz vorab: Ich nutze MS Office 365 und habe mir eine Excel Tabelle mit einem Makro gebaut. In der Tabelle sollen automatisiert Aktienkurse und Fundamentaldaten abgefragt und ausgewertet werden.
Dazu habe ich in einem extra Reiter eine Liste erstellt mit den Links, die nacheinander aufgerufen werden sollen. Nach jedem einzelnen Aufruf extrahieren Formeln aus einem temporären Excel Blatt die entsprechenden Werte. Danach werden die Inhalte des temporären Blatts gelöscht und die nächste Abfrage startet. Und so geht das weiter bis alle Links durch sind.
Das Makro stürzt aber bei 4 von 5 Fällen ab. Excel reagiert nicht mehr und ich muss neu starten. Ab und zu geht alles glatt.
Wenn das Makro abstürzt, dann nicht immer an der gleichen Stelle.
Ich vermute, dass ich irgendwas rein programmiert habe, was auch einfacher gelöst werden kann und v.a. stabiler.
Auch hatte ich mal vermutet, dass die Website meine Anfragen ggf. sperrt, weshalb ich es mit Pausen zwischen den einzelnen Abfragen von bis zu 60 Sekunden versucht habe. Das Resultat war aber das gleiche :(
Was mir noch aufgefallen ist: Wenn ich neben der Ausführung des Makros parallel am Rechner arbeite oder surfe, dann scheint die Absturzrate der Makros sehr viel geringer zu sein. Vielleicht bilde ich es mir auch nur ein, oder vielleicht ist das ein Indiz für irgendeinen Fehler ....
Da ich nicht so erfahren mit Makros bin hoffe ich, dass mir hier jemand helfen kann.
Danke schon einmal an alle, die sich das ansehen!!
Liebe Grüße
Manuel
Das Makro sieht folgendermaßen aus:
Code:
Sub Makro1()
'
'
Sheets("Fundamentalliste").Select
ActiveSheet.Rows("2:9999").Delete
Dim wksListeLinks As Worksheet, lngZeile As Long
Dim strLink As String, strCon As String
Dim wbZiel As Workbook, wksZiel As Worksheet, iCount As Integer
Dim strName As String
'
Set wksListeLinks = Worksheets("LINKS_Bilanzen")
With wksListeLinks
lngZeile = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
Set wbZiel = ActiveWorkbook
Set wksZiel = Worksheets("Webabfrage")
For lngZeile = 2 To lngZeile 'Startzeile der Liste ggf. anpassen!
iCount = iCount + 1
strLink = wksListeLinks.Cells(lngZeile, 1)
strCon = "URL;" & strLink
strName = strLink
With wksZiel.QueryTables.Add(Connection:=strCon, _
Destination:=wksZiel.Range("A1"))
.Name = strName
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Call WerteKopieren
Worksheets("Webabfrage").UsedRange.ClearContents
Next lngZeile
End Sub
Code:
Sub WerteKopieren()
'
' WerteKopieren Makro
'
Sheets("TMP_Datenauslese").Select
ActiveSheet.Rows("2:2").Select
Selection.Copy
Sheets("Fundamentalliste").Select
Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("TMP_Datenauslese").Select
ActiveSheet.Rows("4:4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Fundamentalliste").Select
Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub