Anzeige
Archiv - Navigation
1616to1620
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Codeerweiterung mit regelmäßiger Speicherung

Codeerweiterung mit regelmäßiger Speicherung
07.04.2018 13:15:06
FragePeter
Hallo liebe Community,
ich habe folgendes Problem, welches leider erst seit kurzem vorherrscht.
Folgenden Code habe ich bisher in Verwendung damit ich alle meine Queries (ca. 1250 Webseitenabfragen bzw. Aktualisierungen) automatisch auf ca. 250 Sheets aktualisieren kann (das dauert aktuell ca. 5-6h).
Sub Aktualisierung()
'alle Querytables in allen Blättern der Arbeitsmappe aktualisieren
Dim ws As Worksheet, objQT As QueryTable, objLst As ListObject
For Each ws In ThisWorkbook.Worksheets
For Each objLst In ws.ListObjects
objLst.QueryTable.Refresh BackgroundQuery:=False
Next objLst
Next ws
Set ws = Nothing
Set objLst = Nothing
End Sub
Das Problem akutell ist, dass sich Excel (vermutlich nach dem letzten Query)die Arbeitsmappe schließt und ich nur noch den Stand seit dem letzten Speichern wiederherstellen kann. Somit bekomme ich die Queries einfach nicht mehr aktualisiert.
Wie kann nun im Code ein automatisches Speichern z.b. nach 1h, theoretisch würde ja auch am Ende nach dem letzten Query reichen, implementiert werden?
Vielen Dank für eure Ideen und Hilfe.
VG

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Codeerweiterung mit regelmäßiger Speicherung
07.04.2018 13:54:56
Luschi
Hallo FragePeter,
Du mußt in Deiner 2. For-Schleife eine Pause für das Betriebssystem einlegen:

For Each objLst In ws.ListObjects
objLst.QueryTable.Refresh BackgroundQuery:=False
DoEvents
Next objLst
Begründung siehe Vba-Hilfe.
Gruß von Luschi
aus klein-Paris
AW: Codeerweiterung mit regelmäßiger Speicherung
07.04.2018 14:57:43
FragePeter
Hallo Luschi,
sorry ich hatte irgendwie den falschen Code und ich weiß nicht einmal woher ich diesen habe. Werde alt.
Folgender trifft auf die eingangs beschriebenen Probleme hin:
Sub Aktualisierung_3()
'alle Querytables in den Blättern der Arbeitsmappe aktualisieren
Dim objQT As QueryTable
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
For Each objQT In wks.QueryTables
objQT.Refresh BackgroundQuery:=False
Next objQT
Next wks
End Sub
Hier hatte ich zuerst deine Variante ausprobiert bis ich eben bemerkt habe, dass dies ein anderer Code ist. Wäre hier auch ein DoEvents möglich? Habe es probiert, aber es passiert einfach nichts.
Vielen Dank & Viele Grüße
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige