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

Ablauf Power Query Abfrage vor VBA Makro

Ablauf Power Query Abfrage vor VBA Makro
01.03.2022 17:54:34
Ingo
Hallo zusammen
In meiner Exceldatei habe ich
1. zum einen Power Query Abfragen für die Importierung/Aktualisierung externer Datenquellen und
2. zum anderen einen VBA Code zur Weiterverarbeitung dieser per Power Query in mein Excel importierten/aktualiserten Daten.
Die Abfragen im Power Query habe ich so angelegt, dass sie automatisch gestartet/aktualisiert werden, sobald die Zelle B4 in Tabellenblatt 1 geändert wird, d.h. ich habe im Power Query bei jeder Abfrage diese Zelle als Parameter angegeben und den Flag für die automatische Aktualisierung dazu gesetzt.
Mein oben angesprochener VBA Code wiederum ist zur Zeit ebenfalls in Tabellenblatt 1 hinterlegt und wird auch automatisch gestartet sobald die gleiche Zelle B4 in Tabellenblatt 1 geändert wird. Wie gesagt, dieser VBA Code soll die durch die Power Query aktualisierten Daten weiterverarbeiten.
Nun habe ich das Problem, dass der VBA Code nicht wirklich greift. Meine Vermutung ist, dass beides, Power Query Abfragen und VBA Code "gleichzeitig" ablaufen, und dadurch der VBA Code "zu früh dran ist", bevor die Aktualisierung der Daten durch Power Query abgeschlossen ist (?).
Deshalb meine Frage: Ist es möglich, meine Power Query Abfragen und meine VBA Code für die Weiterverarbeitung der Daten zeitlich zu priorisieren/zeitlich zu takten?
Ziel wäre, zuerst laufen die Power Query Abfragen und erst danach greift mein VBA Code zur Weiterverabeitung der aktualisierten Daten.
Danke für eure Hilfe
Gruss Ingo

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ablauf Power Query Abfrage vor VBA Makro
03.03.2022 11:44:58
Ingo
vielen Dank für den Hinweis.
Leider funktioniert der direkte Link auf den Forumsbeitrag nicht bzw. wird von dem dortigen Forum abgeblockt mit der Systemmeldung "Keine Angabe: Thema".
Kannst du mir vielleicht noch Namen/Thema dieses Forumsbeitrages angeben, damit ich ihn manuell über die Suchfunktion des Forums finden kann?
Danke und Gruss
AW: Ablauf Power Query Abfrage vor VBA Makro
01.03.2022 18:05:40
Nepumuk
Hallo Ingo,
teste mal folgendes.
Im Modul der Tabelle in der sich die Abfrage befindet:

Option Explicit
Private WithEvents mobjQueryTableClass As clsQueryTable
Friend Sub Init_Class()
Set mobjQueryTableClass = New clsQueryTable
Set mobjQueryTableClass.QueryTable = QueryTables(1)
End Sub
Friend Sub Terminate_Class()
Set mobjQueryTableClass = Nothing
End Sub
Private Sub mobjQueryTableClass_Refresh(ByVal pvblnRefresh As Boolean)
If pvblnRefresh Then
MsgBox "After"
Else
MsgBox "Before"
End If
End Sub
In einem Klassenmodul mit dem Namen "clsQueryTable":

Option Explicit
Private WithEvents mobjQueryTable As QueryTable
Public Event Refresh(ByVal pvblnRefresh As Boolean)
Private Sub Class_Terminate()
Set mobjQueryTable = Nothing
End Sub
Friend Property Get QueryTable()
Set QueryTable = mobjQueryTable
End Property
Friend Property Set QueryTable(ByRef probjQueryTable As QueryTable)
Set mobjQueryTable = probjQueryTable
End Property
Private Sub mobjQueryTable_AfterRefresh(ByVal Success As Boolean)
RaiseEvent Refresh(True)
End Sub
Private Sub mobjQueryTable_BeforeRefresh(Cancel As Boolean)
RaiseEvent Refresh(False)
End Sub
Gruß
Nepumuk
Anzeige
AW: Ablauf Power Query Abfrage vor VBA Makro
01.03.2022 18:08:05
Nepumuk
Oooooooooooops,
da fehlt noch was. Im Modul "DieseArbeitsmappe":

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not Saved Then
Select Case MsgBox("Sollen Ihre Änderungen in '" & Name & _
"' gespeichert werden", vbExclamation Or vbYesNoCancel)
Case vbYes
Save
Case vbNo
Saved = True
Case vbCancel
Cancel = True
End Select
End If
If Not Cancel Then Call Tabelle1.Terminate_Class
End Sub
Private Sub Workbook_Open()
Call Tabelle1.Init_Class
End Sub
Gruß
Nepumuk

94 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige