Aktualisierung von unzähligen QueryTables
07.01.2018 10:56:27
unzähligen
ich habe folgendes Problem:
1. Pro Tabellenblatt gibt es 6 Queries
2. Es gibt ca. 250 Tabellenblätter. Macht aktuell ca. 1500 Queries für ein Exceldokument.
3. Verwende Excel 2016
Lösungsansätze:
1. Refresh all klappt nicht, da die Menge einfach zu groß ist --> sprich die Queries müssen nacheinander abgearbeitet werden
2. Ich habe ein paar Lösungen für einzelne Seiten gefunden (bzw. wurde mir dies empfohlen) --> hier fehlt mir aber das nacheinander abarbeiten der Tabellenblätter
z.B.
Sub Aktualisierung()
'alle Querytables im Blatt aktualisieren
Dim objQT As QueryTable
For Each objQT In Sheets("Test").QueryTables
objQT.Refresh BackgroundQuery:=False
Next objQT
End Sub
3. Aktuelle Version von mir: ich selektiere ein Tabellenblatt, und dann alle 6 Zeilen die das Query enthalten. --> funktioniert soweit sogut. Jedoch wenn eine angewählte Zeile verrutscht klappt das nicht mehr so gut. Desweiteren muss ich das auf mehrere Module verteilen da ich sonst einen Fehler (wegen 64kb) bekomme.
Sub Aktualisierung()
Sheets("Test").Select
Range("A80").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("A500").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("A850").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("A1250").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("A1650").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("A2100").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("A2500").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Sheets("Test1").Select
Range("A80").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("A500").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("A850").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("A1250").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("A1650").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("A2100").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("A2500").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
End Sub
Gibt es eine Lösung bei dem ich - die Tabellenblätter nacheinander abarbeiten kann
- nicht mehr jede Zeile selektieren muss (etwas dynamischer)
- alles in ein Module bekomme oder auch automatisch von z.B. Modul1 in Modul2 in Modul3 springe, sodass ich nicht alle Module manuell starten muss? --> das würde vermutlich mit
Sub button()
dein erstes Makro
dein zweites Makro...
End Sub
klappen.
Vielen Dank für eure Hilfe am Morgen.
VG