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

nach PQ Abfrage Tabellenblatt auswählen

nach PQ Abfrage Tabellenblatt auswählen
11.08.2021 08:58:50
Marvin
Ich habe eine Arbeitsmappe, in der ich per PoweQuery eine SQL-Datenbank mit mehreren Abfragen anzapfe und die Ergebnisse in mehreren Tabellen auf einem Tabellenblatt "Berechnungsgrundlage" ablege. Im Blatt "Daten" verarbeite ich die Daten weiter. Der Anwender soll über einen Button die Abfragen aktualisieren können und anschließend wieder auf dem "Daten"-Blatt landen.
Ich habe dazu folgendes Makro gebaut:

Sub Refresh()
Application.DisplayAlerts = False
ActiveWorkbook.RefreshAll
Sheets("Berechnungsgrundlage").Select
Sheets("Daten").Select
Columns("A:AZ").Select
Columns("A:AZ").EntireColumn.Autofit
Range("D3").Select
Application.DisplayAlerts = True
End Sub
Die Aktualisierung klappt problemlos und auch die Formatierungsbefehle nimmt er vor. Allerdings landet er am Ende des Makros nicht wie vorgesehen auf dem Blatt "Daten" in Zelle D3, sondern immer in einer der Abfrage-Tabellen auf dem Blatt "Berechnungsgrundlage". Vermutlich, weil die ABfrage länger braucht als der Rest des Makros. Habe es schon mit Pause und - wie hier - mit dem AUsschalten des Displays versucht, aber leider ohne Erfolg. Hat jemand eine Idee?

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nach PQ Abfrage Tabellenblatt auswählen
11.08.2021 13:00:51
ChrisL
Hi Marvin
Versuch mal so (u.a. Tabelle.Activate anstelle von Select)...

Sub Refresh()
Application.DisplayAlerts = False
ActiveWorkbook.RefreshAll
Application.DisplayAlerts = True
With Worksheets("Daten")
.Columns("A:AZ").EntireColumn.AutoFit
.Activate
.Range("D3").Select
End With
End Sub
In den Verbindungseigenschaften gibt es die Option "Aktualisierung im Hintergrund zulassen".
Je nach Einstellung läuft das Makro bei Refresh durch oder Teil 2 wird erst nach erfolgter Aktualisierung ausgeführt.
cu
Chris
AW: nach PQ Abfrage Tabellenblatt auswählen
11.08.2021 13:24:03
Marvin
Hi Chris,
danke für den Tipp. Leider bleibt es dabei: er landet am Ende des Makros immer wieder auf dem Blatt "Berechnungsgrundlage". Auch wenn ich die Hintergrundaktualisierung ausschalte. Ich habe auch versucht das Blatt auszublenden - ebenfalls erfolglos. Langsam bin ich wirklich ratlos.
Anzeige
AW: nach PQ Abfrage Tabellenblatt auswählen
11.08.2021 13:42:13
ChrisL
Hi
Gibt es noch andere Codes z.B. Worksheet_Activate oder andere Ereignis-Prozeduren?
Das Blatt Berechnungsgrundlage wird in meinem Muster gar nicht erwähnt. Wenn etwas schief läuft (warum auch immer), dann würde man auf dem Ursprungsblatt sitzen bleiben, aber die Aktivierung eines ganz anderen, im Code nicht erwähnten Blattes scheint unlogisch.
cu
Chris
AW: nach PQ Abfrage Tabellenblatt auswählen
12.08.2021 09:32:06
Marvin
Nein, es gibt nur dieses Makro. Das Blatt "Berechnungsgrundlage" wird offenbar automatisch ausgewählt, wenn die Abfragen aktualisiert werden, denn darauf werden die Ergebnisse in Tabellen abgebildet. Das ist auch notwendig.
Im Grunde funktioniert das Makro ja auch - nur die Aktivierung des Blattes "Daten" am Ende nicht.
Ich habe noch einmal geforscht und ein paar Einträge in versch. Foren gefunden, die behaupten, es läge an dem RefreshAll-Befehl. Ich habe nun ein ganz stümperhaftes Makro gebaut, mit dem sich die Abfragen einzeln aktualisieren lassen, aber auch da funktioniert das Springen auf das Blatt "Daten" via VBA nicht. Das Refreshen selbst klappt wunderbar ...
Anzeige
AW: nach PQ Abfrage Tabellenblatt auswählen
12.08.2021 10:20:46
ChrisL
Hi Marvin
Also bei mir wird das Ergebnisblatt nicht automatisch aktiviert. RefreshAll läuft auf Stufe Arbeitsmappe ab, unabhängig vom aktiven Blatt.
Ich kann das Problem somit nicht nachvollziehen/rekonstruieren.
Selbst wenn dem so wäre, wenn die Hintergrundaktualisierung ausgeschaltet ist, dann sollte der Activate-Code nach erfolgter Aktualisierung ausgeführt werden.
Das von dir beschriebene Verhalten kommt mir ziemlich spanisch vor. Du könntest ja mal versuchen die Situation mittels einer neuen simplen Beispielmappe (Querry innerhalb der Mappe statt extern) zu rekonstruieren. Womöglich führt eine ganz bestimmte Konstellation zu deinem Problem, was sich ohne Beispiel nicht erahnen lässt.
cu
Chris
Anzeige
oT: nachgefragt ...
12.08.2021 11:05:23
neopa
Hallo Marvin,
... entschuldige bitte, wenn ich Deinen thread nutze, um Chris auf meinen thread hinzuweisen.
Hallo Chris,
... hast Du meine Fragestellung vom 08.08.21 im thread hier: https://www.herber.de/forum/archiv/1840to1844/1842673_mit_PQ_ausfuehrbare_Zellformel_erzeugen.html geleeen? Wenn noch nicht, kannst Du Dir dies bitte mal ansehen? Wenn Du meine Frage schon gelesen hattest, dann siehst Du wohl keine reine PQ-Lösungsmöglichkeit?
Gruß Werner
.. , - ...
Anzeige
AW: nach PQ Abfrage Tabellenblatt auswählen
12.08.2021 11:53:54
Marvin
Hi Chris,
ich habe jetzt Mal ein super simples Szenario gebastelt: Datei 1 (https://www.herber.de/bbs/user/147580.xlsm) lädt via PQ-Abfrage Datei 2 (https://www.herber.de/bbs/user/147579.xlsx). Das Makro wird über Blatt "Daten" ausgeführt. Nach der Aktualisierung der Verbindungen wird bei mir aber weiterhin automatisch das Tabellenblatt "Berechnungsgrundlage" aktiviert. Auch bei deaktivierter Hintergrundabfrage und auch, wenn keine SQL-DB im Spiel ist.
Gibt's in Excel vielleicht noch irgendwo eine andere Einstellung? Liegt es an der Version 2016?
AW: nach PQ Abfrage Tabellenblatt auswählen
12.08.2021 12:59:47
ChrisL
Sorry, kannst du mir das Makro aus Datei 1 im Forum posten und Datei 1 ebenfalls als XLSX hochladen. (aufgrund Firewall kann ich leider keine xlsm runterladen)
Anzeige
AW: nach PQ Abfrage Tabellenblatt auswählen
12.08.2021 14:05:23
Marvin
Hier der Code:

Sub Refresh()
Application.DisplayAlerts = False
ActiveWorkbook.RefreshAll
Sheets("Berechnungsgrundlage").Select
Sheets("Daten").Select
Columns("A:AZ").Select
Columns("A:AZ").EntireColumn.AutoFit
Range("D3").Select
Application.DisplayAlerts = True
End Sub
Und hier die Datei ohne Makro: https://www.herber.de/bbs/user/147585.xlsx
AW: nach PQ Abfrage Tabellenblatt auswählen
12.08.2021 15:23:32
ChrisL
Hi
Ich habe es jetzt nachgebaut, mit einem lokalen Laufwerkspfad auf die Quelle. Ich benutze ebenfalls XL 2016 (Business).
Makro wird durch Button "Refresh" auf Blatt Daten ausgelöst. Er springt zwar wie im Code angegeben kurz aufs Berechnungsblatt und dann gleich wieder zurück. Am Ende befinde ich mich auf Blatt Daten!D3.
Insofern kann ich deine Problembeschreibung weiterhin nicht nachvollziehen. Klar ist, dass der Blattsprung hin und her nichts bringt.

Sub Refresh()
ActiveWorkbook.RefreshAll
Sheets("Berechnungsgrundlage").Range("A:AZ").EntireColumn.AutoFit
Range("D3").Select
End Sub
Ansonsten die Frage bitte wieder als offen kennzeichnen. Wie erwähnt, ich kann es nicht rekonstruieren.
cu
Chris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige