03.09.2017, 09:41
Einen wunderschönen guten Morgen,
Ich sitze vor meinem Excel 2016 Sheet und komme mit meinem VBA Code nicht weiter. Ich habe ein Makro geschrieben, das folgendes tun soll:
Es zieht sich beim Starten Daten aus dem Web via Webabfrage und fügt sie in das Sheet (Tabelle1; Feld I10) ein. Wenn die Abfrage beendet ist, soll diese Zahl von Feld I10 auf Feld A1 in Tabelle6 kopiert werden. Dann soll 60 Sekunden gewartet werden. Anschließend wieder Datenabfrage, kopieren des Feldes I10 in Feld A2, warten, und so weiter... Am Ende des Tages kann man dann in Tabelle 6 sehen, welche Werte I10 hatte. Folgendermaßen sieht mein Makro aus:
Das Ganze funktioniert auch eigentlich. Die Daten werden abgefragt, der Datensatz wird nach Tabelle 6 kopiert und das Makro wartet 60 Sekunden. Allerdings wird nicht gewartet, bis die Abfrage beendet ist. Das heißt, noch während die Abfrage läuft, wird nach Tabelle 6 kopiert. Und was noch viel schlimmer ist: Der darauf folgende Timer pausiert die laufende Abfrage, sodass diese nie zuende ausgeführt wird. Wie bringe ich das Makro dazu, zu warten, bis die Abfrage beendet ist? Ich bin mit meinen mini Programmierkenntnissen am Ende...
Vielen Dank im Voraus,
Freefall
Ich sitze vor meinem Excel 2016 Sheet und komme mit meinem VBA Code nicht weiter. Ich habe ein Makro geschrieben, das folgendes tun soll:
Es zieht sich beim Starten Daten aus dem Web via Webabfrage und fügt sie in das Sheet (Tabelle1; Feld I10) ein. Wenn die Abfrage beendet ist, soll diese Zahl von Feld I10 auf Feld A1 in Tabelle6 kopiert werden. Dann soll 60 Sekunden gewartet werden. Anschließend wieder Datenabfrage, kopieren des Feldes I10 in Feld A2, warten, und so weiter... Am Ende des Tages kann man dann in Tabelle 6 sehen, welche Werte I10 hatte. Folgendermaßen sieht mein Makro aus:
Code:
Sub intervall()
Dim Zeit As Double, SekPause As Double
beginning:
ActiveWorkbook.RefreshAll
With Sheets("Tabelle6")
.Range("A6500").End(xlUp).Offset(1, 0).Value = Sheets("Tabelle1").Range("I10").Value
SekPause = 60
Zeit = Timer
Do While Timer < Zeit + SekPause
DoEvents
Loop
GoTo beginning
End With
End Sub
Das Ganze funktioniert auch eigentlich. Die Daten werden abgefragt, der Datensatz wird nach Tabelle 6 kopiert und das Makro wartet 60 Sekunden. Allerdings wird nicht gewartet, bis die Abfrage beendet ist. Das heißt, noch während die Abfrage läuft, wird nach Tabelle 6 kopiert. Und was noch viel schlimmer ist: Der darauf folgende Timer pausiert die laufende Abfrage, sodass diese nie zuende ausgeführt wird. Wie bringe ich das Makro dazu, zu warten, bis die Abfrage beendet ist? Ich bin mit meinen mini Programmierkenntnissen am Ende...
Vielen Dank im Voraus,
Freefall