Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
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

QueryTables aktualisieren

QueryTables aktualisieren
08.04.2018 14:23:10
FrageHans
Hallo zusammen,
leider läuft mein Code nicht durch bzw. er führt dazu, dass sich Excel aufhängt und das Dokument wiederherstellen möchte (Excel 2016).
Userbild
Luschi hatte mir schon einen Tipp gegeben mit DoEvents. Leider hilft das nicht weiter.
Sub Refresh()
Dim wS As Worksheet
Dim qry As QueryTable
For Each wS In ThisWorkbook.Worksheets
For Each qry In wS.QueryTables
qry.Refresh BackgroundQuery:=False
DoEvents
Next qry
Next wS
End Sub

Es werden ca. 1250 Queries aktualisiert (Webanfragen). Daher muss es eine aufeinanderfolgende Aktualisierung sein. Gibt es performantere Codes oder gibt es andere Ideen? Ich habe schon versucht den Speicher im Ram zu vergrößern, da ich vermutete, dass der Rechner zu wenig Ressourcen z.V. hat.
Ich würde gerne auch ein regelmäßiges Speichern in die Schleife einbauen.
Ein Traum wäre das ganze in eine Art Cloud zu legen, damit ich nicht selbständig immer aktualisieren muss, sondern es automatisch passiert (quasi realtime).
Vielen Dank für eure Hilfe am sonnigen Sonntag.
Beste Grüße

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

Betreff
Datum
Anwender
Anzeige
AW: QueryTables aktualisieren
08.04.2018 16:35:52
Bernd
Hi,
ungetestet, versuche mal das hier ...
Sub WebabfrageAktualisieren()
Dim objQueryTable As QueryTable, lstObj As ListObject
Dim objWorksheet As Worksheet
For Each objWorksheet In ThisWorkbook.Worksheets
For Each objQueryTable In objWorksheet.QueryTables
'dieser For-Schleife wird nie ausgeführt
Call objQueryTable.Refresh(BackgroundQuery:=False)
Next
On Error Resume Next
For Each lstObj In objWorksheet.ListObjects
'diese aber schon
Call lstobj.QueryTable.Refresh(BackgroundQuery:=False)
Next lstobj
On Error Goto 0
Next
Call MsgBox("Habe fertig", vbInformation, "Info")
End Sub
Gruß Bernd
Anzeige
AW: QueryTables aktualisieren
08.04.2018 18:31:15
Martin
Hallo Bernd,
vielleicht wäre es sinnvoll in der Statusleiste eine Rückmeldung zu geben bei welchem QueryTable sich Excel gerade befindet. Vielleicht hängt sich Excel immer beim selben QueryTable auf:
Sub Refresh()
Dim wS As Worksheet
Dim qry As QueryTable
For Each wS In ThisWorkbook.Worksheets
For Each qry In wS.QueryTables
Application.StatusBar = qry.Name
qry.Refresh BackgroundQuery:=False
DoEvents
Next qry
Next wS
Application.StatusBar = False
End Sub
Viele Grüße
Martin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige