Ich habe mittels Makro-Recorder die Erstellung einer PowerQuery aufgezeichnet.
Die PowerQuery beinhaltet, dass ich den Monat für die Ausgabedaten filtere (aktuell ist November 2020 in statischer Form drin). Da ich die Wahl des Monats dynamisch gestalten möchte, habe ich eine Variable für den Monat gesetzt.
Wenn ich den Wert der Variable abfrage, kommt auch der Wert, den ich haben will, entsprechend raus:
Sub test()
Dim Monat As String
Monat = Sheets("CRM_Verwaltung").Range("DO14").Value
MsgBox "Dies ist der Monat: -" & Monat & "-"
End Sub
Wenn ich die Variable allerdings in meinem PowerQuery-Makro platziere, werden leider gar keine Daten mehr in die Abfragen geladen.
Nachfolgend dazu mal das ganze Skript. Ich kann mir vorstellen, dass dies damit zusammen hängt, dass die PowerQuery-Infos in TypeScript (?) abgebildet sind und ich die Variabel mit einer anderen Syntax darin setzen muss.
Sub Rechnungstabelle_Erstellen()
Dim Monat As String
Monat = Sheets("CRM_Verwaltung").Range("DO14").Value
'
' Query_Übernachtungen_1_1 Makro
'
ActiveWorkbook.Queries.Add Name:="Übernachtungen_1_1", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Quelle = Excel.CurrentWorkbook(){[Name=""Tabelle1""]}[Content]," & Chr(13) & "" & Chr(10) & " #""Gefilterte Zeilen"" = Table.SelectRows(Quelle, each ([Monat Jahr Text] = ""November 2020"") and ([Zahlungsart] <> ""Selbstzahler""))," & Chr(13) & "" & Chr(10) & " #""Duplizierte Spalte"" = Table.DuplicateColumn(#""Gefilterte Zeilen"", ""Monat Jahr Zahl"", ""Monat Jahr Zahl - Kopie"")," & Chr(13) & "" & Chr(10) & " #""Duplizierte Spalt" & _
"e1"" = Table.DuplicateColumn(#""Duplizierte Spalte"", ""Klient"", ""Klient - Kopie"")," & Chr(13) & "" & Chr(10) & " #""Duplizierte Spalte2"" = Table.DuplicateColumn(#""Duplizierte Spalte1"", ""Zahlungsart"", ""Zahlungsart - Kopie"")," & Chr(13) & "" & Chr(10) & " #""Zusammengeführte Spalten"" = Table.CombineColumns(Table.TransformColumnTypes(#""Duplizierte Spalte2"", {{""Monat Jahr Zahl - Kopie"", type text}}, ""d" & _
"e-CH""),{""Monat Jahr Zahl - Kopie"", ""Klient - Kopie"", ""Zahlungsart - Kopie""},Combiner.CombineTextByDelimiter(""_"", QuoteStyle.None),""Zusammengeführt"")," & Chr(13) & "" & Chr(10) & " #""Duplizierte Spalte3"" = Table.DuplicateColumn(#""Zusammengeführte Spalten"", ""Verrechnungskey"", ""Verrechnungskey - Kopie"")," & Chr(13) & "" & Chr(10) & " #""Duplizierte Spalte4"" = Table.DuplicateColumn(#""Duplizierte Sp" & _
"alte3"", ""Betrag"", ""Betrag - Kopie"")," & Chr(13) & "" & Chr(10) & " #""Zusammengeführte Spalten1"" = Table.CombineColumns(Table.TransformColumnTypes(#""Duplizierte Spalte4"", {{""Betrag - Kopie"", type text}}, ""de-CH""),{""Verrechnungskey - Kopie"", ""Betrag - Kopie""},Combiner.CombineTextByDelimiter(""_"", QuoteStyle.None),""Zusammengeführt.1"")," & Chr(13) & "" & Chr(10) & " #""Neu angeordnete Spalten"" = Ta" & _
"ble.ReorderColumns(#""Zusammengeführte Spalten1"",{""Zusammengeführt"", ""Verrechnungskey"", ""Zusammengeführt.1"", ""Klient"", ""Betrag"", ""Listenfeldzeile"", ""Monat Text"", ""Monat Zahl"", ""Jahr"", ""Monat Jahr Zahl"", ""Monat Jahr Text"", ""Datum"", ""Zahlungsart"", ""Schulden"", ""Gutschein"", ""Bemerkungen2""})," & Chr(13) & "" & Chr(10) & " #""Entfernte Spalten"" = Table.RemoveColu" & _
"mns(#""Neu angeordnete Spalten"",{""Listenfeldzeile"", ""Monat Text"", ""Monat Zahl"", ""Jahr"", ""Monat Jahr Zahl"", ""Monat Jahr Text"", ""Datum"", ""Zahlungsart"", ""Schulden"", ""Gutschein"", ""Bemerkungen2""})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Entfernte Spalten"""
Workbooks("NOST_CRM_V5.xlsm").Connections.Add2 "Abfrage - Übernachtungen_1_1", _
"Verbindung mit der Abfrage 'Übernachtungen_1_1' in der Arbeitsmappe.", _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Übernachtungen_1_1;Extended Properties=""""" _
, "SELECT * FROM [Übernachtungen_1_1]", 2
Der Teil wo die Variable hin gehört, sollte fett markiert sein (November 2020).
Liebe Grüsse
Yannick