Anzeige
Archiv - Navigation
1596to1600
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

VBA funktioniert nach Wechsel von 13 auf 16 nicht

VBA funktioniert nach Wechsel von 13 auf 16 nicht
02.01.2018 21:08:57
13
Hallo zusammen,
ich habe eine Recht simple VBA. Leider funktioniert diese nach dem Update von 2013 auf 2016 _ nicht mehr (Fehler beim Kompilieren. Prozedur zu groß). Die Hilfe von MS verstehe ich nicht.

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
End Sub

Vielleicht hat jemand von euch eine simple Antwort parat.
Vielen Dank euch.
VG

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA funktioniert nach Wechsel von 13 auf 16 nicht
03.01.2018 05:36:21
13
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
Vielleicht gibt es die Elemente nicht mehr?
ich hätte es ohne select gemacht.
With Sheets("Test")
.Range("A80").QueryTable.Refresh BackgroundQuery:=False

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung....."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: VBA funktioniert nach Wechsel von 13 auf 16 nicht
03.01.2018 06:18:06
13
Hallo Peter,
die Fehlermeldung bedeutet eigentlich, dass das Code-Modul zuviel Code (mehr als 64 kByte) enthält.
Bei den paar Zeilen nicht nachzuvollziehen.
Nachfolgend eine etwas kürzere Makroversion wenn alle Querytables in einem Tabellenblatt aktualisiert werden sollen.
Gruß
Franz

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

AW: VBA funktioniert nach Wechsel von 13 auf 16 nicht
06.01.2018 21:27:55
13
Hallo zusammen,
das Problem war tatsächlich aufgrund der Größe. Ich hatte einen Hauptpunkt vergessen und zwar, dass es sehr viele Sheets sind.
Ich finde die folgende Variante sehr schön.
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
Wie kann ich die bei mehrere Sheets einsetzen? Habe es mit Duplizieren versucht, aber das klappt nicht, da sich Befehle doppeln.
Sub Aktualisierung()
'alle Querytables im Blatt aktualisieren
Dim objQT As QueryTable
For Each objQT In Sheets("Test").QueryTables
objQT.Refresh BackgroundQuery:=False
Next objQT
Dim objQT As QueryTable
For Each objQT In Sheets("Test1").QueryTables
objQT.Refresh BackgroundQuery:=False
Next objQT
End Sub
Geht das überhaupt mit mehreren Sheets?
Vielen Dank & Viele Grüße
Anzeige
AW: VBA funktioniert nach Wechsel von 13 auf 16 nicht
07.01.2018 13:49:51
13
Hallo Peter,
man kann die Tabellenblätter in einer äußeren Schleife und die Querytables in einer inneren Schleife abarbeiten.
Welche der drei Varianten du verwenden solltest hängt davon ab, ob du Querytables in wenigen, vielen oder allen Tabellenblätter der Arbeitsmappe aktualisieren willst.
Gruß
Franz

Sub Aktualisierung()
'alle Querytables in bestimmten Blättern aktualisieren
'Variante wenn in den meisten Tabellenblättern keine Querytables _
aktualisiert werden sollen
Dim objQT As QueryTable
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
Select Case wks.Name
Case "Test", "Test1"
'nur in diesen Tabellenblättern Querytables aktualisieren
For Each objQT In wks.QueryTables
objQT.Refresh BackgroundQuery:=False
Next objQT
Case Else
'do nothing
End Select
Next wks
End Sub
Sub Aktualisierung_2()
'alle Querytables in bestimmten Blättern nicht aktualisieren
'Variante wenn in den meisten Tabellenblättern Querrytables _
aktualisert werden sollen
Dim objQT As QueryTable
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
Select Case wks.Name
Case "Tab ABC", "Tab XYZ"
'in diesen Tabellenblättern Querytables nicht aktualisieren
Case Else
For Each objQT In wks.QueryTables
objQT.Refresh BackgroundQuery:=False
Next objQT
End Select
Next wks
End Sub
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

Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige