Guten Tag,
ich möchte meine Power Query (welche Ordnerstrukturen ausliest und die PDF-Dateien auflistet) automatisieren, diese soll ihren Quellbezug immer aus dem Verzeichnis nehmen in der die aktuelle Excel-Datei liegt. Also wenn z.B. Excel-Datei in "C:\Dokumente\Neu" liegt, dann soll die Power Query die Ordner aus "C:\Dokumente\Neu" durchsuchen und dort alle PDF's rausfiltern und auflisten, ohne dass ich das Verzeichnis manuell angebe, weil ich möchte diese als Vorlage verwenden und immer nur die Excel-Datei kopieren.
Vielen Dank im Voraus!
Mit freundlichen Grüßen
Atomic
Hallo, :19:
wenn Du rein gar nichts mehr anklicken und ändern möchtest, bietet sich hier VBA an - Stichwort "Workbook_Open()" und "ThisWorkbook.Path". :21:
hallo
das Prinzip wird auch in Shifts Link beschrieben, ich nutze eine PQ-Funktion fnGetParameters() zum Auslesen einer Parametertabelle(in eine leere Abfrage kopieren)
Code:
(ParameterName as text) =>
let
ParamSource = Excel.CurrentWorkbook(){[Name="Parameters"]}[Content],
ParamRow = Table.SelectRows(ParamSource, each ([Parameter] = ParameterName)),
Value=
if Table.IsEmpty(ParamRow)=true
then null
else Record.Field(ParamRow{0},"Value")
in
Value
Die eigentliche Abfrage kann dann z.B. so lauten:
Code:
let
FilePath = Text.From(fnGetParameters("FilePath")),
Source = Excel.Workbook(File.Contents(FilePath & "\fnGetParameters.xlsx"), null, true)
in
#"Source"
Der Parameter FilePath im Beispiel wird mit einer Formel so gebildet
Code:
=LINKS(ZELLE("filename";A1);FINDEN("[";ZELLE("filename");1)-1)
Hallo,
So sieht sie der Query-Code derzeit aus mit meiner Formatierungen und Regeln für die Tabelle:
let
Quelle = Folder.Files("D:\Excel-Vorlage"), (Was muss "Quelle =" sein, damit sie den ThisWorkbook.Path nimmt?)
#"Gefilterte Zeilen" = Table.SelectRows(Quelle, each Text.Contains([Name], "_")),
#"Entfernte Spalten" = Table.RemoveColumns(#"Gefilterte Zeilen",{"Content", "Date accessed", "Extension", "Date modified", "Date created", "Attributes", "Folder Path"}),
#"Sortierte Zeilen" = Table.Sort(#"Entfernte Spalten",{{"Name", Order.Ascending}}),
#"Umbenannte Spalten" = Table.RenameColumns(#"Sortierte Zeilen",{{"Name", "Hersteller1"}}),
#"Sortierte Zeilen1" = Table.Sort(#"Umbenannte Spalten",{{"Hersteller1", Order.Ascending}})
in
#"Sortierte Zeilen1"
hallo
was genau ist an meiner Beschreibung unverständlich?