Clever-Excel-Forum

Normale Version: Power Query - Quellbezug
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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

Ein Treffer aus meiner Web-Suche:
https://social.msdn.microsoft.com/Forums...otforexcel

Weitere Treffer solltest du selber finden können.
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?