Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1908to1912
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

PQ Laufwerkermittlung

PQ Laufwerkermittlung
01.12.2022 08:24:03
Jan
Hallo
Da ich den anderen Beitrag mit PQ & Pfad nicht mehr finden kann, habe ich einen neuen jetzt gemacht.
Eine Frage an die PQ Profis:
Ist es möglich mittels PQ alle Laufwerke abzufragen wo ein ganz bestimmter Ordner liegt um festzustellen welche Dateien dort drin sind?
Wenn ja wie muss die Funktion für die Abfrage der Laufwerke lauten und wie muss die Ordnerabfrage für den bestimmten Ordner lauten?
Ich würde mich sehr freuen wenn mir jemanden helfen könnte von den Profis.
Viele Grüße

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PQ Laufwerkermittlung
01.12.2022 09:01:06
Yal
Hallo Jan,
nein geht leider nicht (zumindest nicht mit gängigen Mittel*)
Du kannst mit PQ den Inhalt eines Verzeichnis lesen, musst aber den Verzeichnis vorgeben. Du könntest aber eine Liste von Verzeichnis haben, die durchgesucht werden sollten.
Die Laufwerke kannst Du mit VBA auflisten. Suche nach Filesystemobject, wie hier
https://learn.microsoft.com/de-de/office/vba/language/reference/user-interface-help/filesystemobject-object
Die Eigenschaft "Liste der Laufwerk" heißt Drives:
https://learn.microsoft.com/de-de/office/vba/language/reference/user-interface-help/drives-property
*: Ich kann es nicht ausschließen (Zugriff über die WMI?) Aber da waren weit von normalen Excel wissen. Und Drill down auf die Unterverzeichnis hättest Du weiterhin nicht.
VG
Yal
Anzeige
AW: PQ Laufwerkermittlung
01.12.2022 13:16:51
ChrisL
Hi
Hier der gesuchte Link: https://www.herber.de/forum/archiv/1908to1912/1908081_PowerQuery_User_Pfad.html
Allerdings ging es dort um die Ermittlung des Benutzernamens und jetzt geht es und das Laufwerk.
Thema Laufwerk. Die nachfolgende Lösung funktioniert mit konventionellen Laufwerksbuchstaben A-Z. Mehrfach Treffer werden nicht behandelt d.h. das erste gefundene Laufwerk wird ausgegeben.
fxFindFolder

(optional SubPfad as text, optional loop as number) =>
let
LWListe = {"A".."Z"},
loop = if loop = null then 0 else loop,
LW = Text.From(List.First(List.Range(LWListe,loop,1))),
GanzerPfad = if SubPfad = null then LW & ":\" else LW & ":\" & SubPfad,
Quelle = Folder.Contents(GanzerPfad),
Result = try Table.RowCount(Quelle) otherwise "nicht vorhanden",
Output =
if Result = "nicht vorhanden" then
if loop = List.Count(LWListe) -1 then
Result
else
@#"fxFindFolder"(SubPfad, loop +1)
else
Folder.Contents(GanzerPfad)
in
Output
Abfrage1

let
Quelle = fxFindFolder("Unterordner1\Unterordner2")
in
Quelle
cu
Chris
Anzeige
AW: PQ Laufwerkermittlung
01.12.2022 13:35:35
ChrisL
Die Kombi:
Angenommen der Pfad "\Users\Benutzer\Desktop" befindet sich nicht immer auf dem Laufwerk C.
Funktion1 sucht das Laufwerk vom Pfad "\Users"
Funktion2 sucht im entsprechenden Pfad den angemeldeten Benutzer
"Desktop" wird dem gefundenen Pfad einfach noch angehängt d.h. das Endresultat ist nicht mehr validiert
fxFindUserFolder

(optional loop as number) =>
let
LWListe = {"A".."Z"},
loop = if loop = null then 0 else loop,
LW = Text.From(List.First(List.Range(LWListe,loop,1))),
GanzerPfad = LW & ":\Users",
Quelle = Folder.Contents(GanzerPfad),
Result = try Table.RowCount(Quelle) otherwise "nicht vorhanden",
Output =
if Result = "nicht vorhanden" then
if loop = List.Count(LWListe) -1 then
Result
else
@fxFindUserFolder(loop +1)
else
GanzerPfad
in
Output
fxReturnDesktopPfad

(BasisPfad as text) =>
let
Source = Folder.Contents(BasisPfad),
#"Expanded Attributes" = Table.ExpandRecordColumn(Source, "Attributes", {"Hidden", "Directory", "ChangeTime"}, {"Hidden", "Directory", "ChangeTime"}),
#"Filtered Directories not hidden" = Table.SelectRows(#"Expanded Attributes", each ([Directory] = true) and ([Hidden] = false)),
#"Removed Errors" = Table.RemoveRowsWithErrors(#"Filtered Directories not hidden", {"ChangeTime"}),
#"Filtered Rows" = Table.SelectRows(#"Removed Errors", each ([Name]  "Public")),
Result = BasisPfad & "\" & #"Filtered Rows"{0}[Name] & "\Desktop"
in
Result
Abfrage1

let
Quelle = fxReturnDesktopPfad(fxFindUserFolder())
in
Quelle
cu
Chris
Anzeige
AW: PQ Laufwerkermittlung
01.12.2022 15:49:42
Luschi
Hallo ChrisL,
das ist sicher 1 netter Versuch, aber wohl zum Scheitern verurteilt:
- das ist so wie beim Navi im Auto
- wenn der Fahrer nicht weiß, wohin er fahren will, ist das Ding völlig nutzos
- selbst wenn er die Stadt wüßte, hätte er bei 'Neustadt' das Problem,
  den Zielort richtig zu lokalisieren
- PQ ist nicht dafür ausgelegt, sich die Datenquellen selber zu suchen
- da sollte der User schon ein paar Anstrengungen im Vorfeld unternehmen
  die Datenquellen ausfindig zu machen
- 1 Parametertabelle ist da hilfreicher, als das Stochern im Nebel
Gruß von Luschi
aus klein-Paris
Anzeige
AW: PQ Laufwerkermittlung
01.12.2022 17:21:38
ChrisL
Hi Luschi
Ich gebe gerne zu, dass mein Ansatz etwas unkonventionell ist. Andererseits läuft der Code rasch durch und führt zum Ergebnis. Die Anzahl Buchstaben eines Alphabets sind fix/begrenzt. Anders lautende LW-Bezeichnungen stellen eine Einschränkung dar.
Wenn es nicht anders geht, finde ich eine Trial&Error Suche legitim. Vielleicht etwas weit hergeholt, aber wenn man in VBA anhand des CodeName den Tabellennamen ermitteln will, macht man es zwangsläufig ähnlich...

For Each wks In ThisWorkbook.Worksheets
If wks.CodeName = "Tabelle1" Then Exit For
Next wks
Jedenfalls hat die Alternative (FSO VBA) ja auch seine Nachteile u.a. wird die Nutzung oder das Empfangen von Makro-Dateien bei vielen Unternehmen unterbunden.
PQ ist nicht dafür ausgelegt, sich die Datenquellen selber zu suchen
- In Bezug auf Laufwerksbuchstaben gebe ich dir recht
- Andererseits sind Ordnerabfragen (z.B. Filter nach neuster Datei) darauf ausgelegt
Lange Rede... wieso soll man nicht mal ein paar Laufwerksbuchstaben durchrattern. Pragmatischer Ansatz...
cu
Chris
Anzeige
AW: PQ Laufwerkermittlung
02.12.2022 06:44:58
Jan
Hallo
Erstmals euch drei vielen vielen lieben Dank für eure tollen Vorschläge.
Nun liegt es an mir für das ganze zu testen, so bald ich es getestet habe gebe ich direkt Rückmeldung.
Leider könnte die Rückmeldung etwas dauern berufsbedingt.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige