Excel Makro VBA Quellenänderung
06.04.2020 10:27:35
Julien
ich habe ein Makro aufgenommen, welches mir aus einem Ordner eine Tabelle über das PowerQuery-Tool von verschiedenen Arbeitsmappen erstellt. Soweit so gut funktioniert dies auch.
Jedoch möchte ich, dass der Quellordner über eine Zelle bestimmt wird. Selbstverständlich befindet sich in dieser Zelle der Pfad des Ordners. Gebe ich den Pfad direkt in den fett markierten Bereich meines Codes ein, funktioniert das Makro.
Mache ich es über einen Range Befehl, bekomme ich den "Laufzeitfehler 1004: [Expression.Error] Der Name "Source" wurde nicht erkannt. Ist er richtig geschrieben." Verzeiht mir die Formatierung meines Makros, bekomme es gerade nicht besser in der Vorschau hin. Falls mir jemand weiterhelfen möchte, wäre ich sehr dankbar.
Viele Grüße
Sub PowerQueryTableV()
' PowerQueryTableV Makro
ActiveWorkbook.Queries.Add Name:="E_Daten_Sammelbecken", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Quelle = Folder.Files(Range(A15).Value) ," _
& Chr(13) & "" & Chr(10) & " #""Hinzugefügte benutzerdefinierte Spalte"" = Table.AddColumn(Quelle, ""Inhalt"", each Excel.Workbook([Content]))," & Chr(13) & "" & Chr(10) & " #""Erweiterte Inhalt"" = Table.ExpandTableColumn(#""Hinzugefügte benutzerdefinierte Spalte"", ""Inhalt"", {""Name"", ""Data"", ""Item"", ""Kind"", ""Hidden""}, " & _
"{""Inhalt.Name"", ""Inhalt.Data"", ""Inhalt.Item"", ""Inhalt.Kind"", ""Inhalt.Hidden""} _
)," & Chr(13) & "" & Chr(10) & " #""Hinzugefügte benutzerdefinierte Spalte1"" = Table.AddColumn(#""Erweiterte Inhalt"", ""Benutzerdefiniert"", each Table.PromoteHeaders([Inhalt.Data]))," & Chr(13) & "" & Chr(10) & " #""Erweiterte Benutzerdefiniert"" = Table.ExpandTableColumn(#""Hinzugefügte benutzerdefinierte Spalte1"", ""Benutze" & _
"rdefiniert"", {""Ortskennzeichen"", ""Orts-/ Hauptschalterbezeichnung"", ""abweichende _
Netzspannung"", ""gesamte Schrankbreite [mm]"", ""Schrankhöhe [mm]"", ""Schranktiefe [mm]"", ""Schranksockel [mm]"", ""Aufbau des Schaltschrankes in Feldern"", ""Position Einspeisung x-te Tür von links"", ""Nennstrom der Einspeisung"", ""Hauptschalter Nennstrom"", ""Vorsicherung E" & _
"inspeisung (minimal)"", ""Vorsicherung Einspeisung (maximal) "", ""Anzahl Phase x _
Leiter x min - max Querschnitt"", ""Neutralleiter erforderlich?"", ""Kann Neutralleiter auf 1/2 Phase reduziert werden?"", ""Anzahl Leiter x min - max Querschnitt für N"", ""Kann der PE auf 1/2 Phase reduziert werden?"", ""Anzahl x min - max Querschnitt für PE"", ""Wirkleistung [kW]" & _
""", ""Scheinleistung [kVA]"", ""Cos Phi"", ""Verlustleistung [kW]"", ""RF Auftrags-Nr." _
", ""Lieferant"", ""Ersteller"", ""Komponente"", ""Datum"", ""Status"", ""Spannung [V]"", ""Frequenz [Hz]""}, {""Ortskennzeichen"", ""Orts-/ Hauptschalterbezeichnung"", ""abweichende Netzspannung"", ""gesamte Schrankbreite [mm]"", ""Schrankhöhe [mm]"", ""Schranktiefe [mm]"", ""Sch" & _
"ranksockel [mm]"", ""Aufbau des Schaltschrankes in Feldern"", ""Position Einspeisung x- _
te Tür von links"", ""Nennstrom der Einspeisung"", ""Hauptschalter Nennstrom"", ""Vorsicherung Einspeisung (minimal)"", ""Vorsicherung Einspeisung (maximal) "", ""Anzahl Phase x Leiter x min - max Querschnitt"", ""Neutralleiter erforderlich?"", ""Kann Neutralleiter auf 1/2 Phase " & _
"reduziert werden?"", ""Anzahl Leiter x min - max Querschnitt für N"", ""Kann der PE _
auf 1/2 Phase reduziert werden?"", ""Anzahl x min - max Querschnitt für PE"", ""Wirkleistung [kW]"", ""Scheinleistung [kVA]"", ""Cos Phi"", ""Verlustleistung [kW]"", ""RF Auftrags-Nr."", ""Lieferant"", ""Ersteller"", ""Komponente"", ""Datum"", ""Status"", ""Spannung [V]"", ""Frequen" & _
"z [Hz]""})," & Chr(13) & "" & Chr(10) & " #""Entfernte Spalten"" = Table. _
RemoveColumns(#""Erweiterte Benutzerdefiniert"",{""Content"", ""Name"", ""Extension"", ""Date accessed"", ""Date modified"", ""Date created"", ""Attributes"", ""Folder Path"", ""Inhalt.Name"", ""Inhalt.Data"", ""Inhalt.Item"", ""Inhalt.Kind"", ""Inhalt.Hidden""})," & Chr(13) & "" & Chr(10) & " #""Gefilterte Zeilen"" = Table.SelectRows(#""Entfe" & _
"rnte Spalten"", each [Ortskennzeichen] null and [Ortskennzeichen] """")," & Chr( _
13) & "" & Chr(10) & " #""Geänderter Typ"" = Table.TransformColumnTypes(#""Gefilterte Zeilen"",{{""Wirkleistung [kW]"", Int64.Type}, {""Scheinleistung [kVA]"", Int64.Type}, {""Datum"", type date}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Geänderter Typ"""
Sheets.Add After:=ActiveSheet
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location= _
E_Daten_Sammelbecken;Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [E_Daten_Sammelbecken]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = False
.ListObject.DisplayName = "E_Daten_Sammelbecken"
.Refresh BackgroundQuery:=False
End With
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
End Sub