Anzeige
Archiv - Navigation
1532to1536
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

Unterordner suchen und Pfad ausgeben

Unterordner suchen und Pfad ausgeben
06.01.2017 13:14:52
Peter
Liebe Experten,
ich bitte um Eure Hilfe.
Hat jemand von Euch ein Modul mit dem ein Ordner mit bestimmten Namen (z.B. Test) gesucht werden kann und dann der ganze Pfad ausgegeben wird?
Für Eure Hilfe bedanke ich mich schon voraus.
LG, Peter

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CMD.exe
06.01.2017 13:30:25
Fennek
Hallo,
um z.B. den Ordner "Destop" zu finden, geht im cmd-Fenster:

c:\users\user>dir /A:D /S /B desktop
Hilfe mit dir /?
Dies kann auch direkt aus vba aufgerufen werden.
mfg
AW: CMD.exe
06.01.2017 15:39:51
Peter
Hallo Fennek,
was ist ein cmd-Fenster?
LG, Peter
AW: CMD.exe
06.01.2017 16:17:55
Fennek
Hallo,
kennen nur noch Vor-Windows-Leute cmd, das alte DOS?
In vba sollte dieser Code von snb helfen (Änderungen ungeprüft)
"c:\temp" muss durch den Basisordner ersetz werden.
"A:D" findet nur folder, keine Dateien
"/s" durchsucht alle Unterorder
"/b" ist ein ein-zeiliges Ausgabeformat mit dem kompletten Pfad

Sub M_snb_dir()
sn = Split(CreateObject("wscript.shell").exec("cmd /c dir ""c:\temp\"" /b/s/a:d").stdout. _
readall, vbCrLf)
For Each d In sn
msgbox d
Next d
End Sub
mfg
Anzeige
AW: Unterordner suchen und Pfad ausgeben
07.01.2017 03:54:00
Peter
Hallo Fennek,
vielen Dank für deine Hilfe. Ich habe mich falsch ausgedrückt.
Ich suche nach einem Code welches zu einem Unterordner den entsprechen Pfad liefert.
Z.Bsp habe ich einen Ordner Test und einen Pfad C:\Ordner1\Ordner2\Ordner3\Test\Ordner4\usw.
In der Masterdatei steht in A1 der Name des Orders (z.B. Test) der gesucht werden soll.
In B1 soll dann der dazugehörige Pfad (C:\Ordner1\Ordner2\Ordner3\) eingefügt werden.
Läßt sich so etwas mut VBA machen?
Lh, Peter
AW: Unterordner suchen und Pfad ausgeben
07.01.2017 12:22:36
firmus
Hi Peter,
hier ein getestetes Beispiel wie eine Dateistruktur per VBA durchgelesen werden kann.
Dabei gewinnst Du auch die Pfad-Information.
Am besten im Debug-Mode(F8) schrittweise anfangen. Die Struktur wird gleich in das aktuelle leere!
Blatt geschrieben.
Die weitere Codierung z.B. mit INSTR Abfrage dürfte dann relativ einfach sein.
https://www.herber.de/bbs/user/110391.xlsm
(Copyright: irgendjemand, irgendwo aus diesem Forum - vor xx Jahren, ich habe es nur verfeinert in der Ausgabe).
Gruß
Firmus
Anzeige
AW: Unterordner suchen und Pfad ausgeben
08.01.2017 21:04:14
Peter
Hallo Firmus,
vielen Dank für deine Hilfe.
Dein Makro kann ich auch sehr gut verwerten.
Denn ich werde auch nach einem Pfad suchen müssen, in dem sich eine bestimmte Datei befindet.
Lg, Peter
Dazu kannst Du eine Funktion...
07.01.2017 13:09:43
Case
Hallo Peter, :-)
... nutzen, die nachfolgend aufgeführt ist - und Deinen Anforderungen entspricht: ;-)
Option Explicit
Function fncFolderSearch(ByVal strFolder As String, _
Optional strTMP As String = "C:\Temp\") As String
Dim strAll() As String
strTMP = IIf(Right(strTMP, 1)  "\", strTMP & "\", strTMP)
strAll = Split(CreateObject("Wscript.Shell").exec _
("CMD /C Dir Dir /S /B /AD " & """" & strTMP & _
strFolder & """" & """").stdout.readall, vbCrLf)
On Error Resume Next
fncFolderSearch = Left(strAll(0), (InStrRev(strAll(0), "\") - 1))
If Err.Number = 9 Then
fncFolderSearch = "Kein Ordner gefunden!"
End If
On Error GoTo 0
End Function
Wenn der Ordner in A1 steht, dann einfach in B1 folgendes eingeben:
=fncFolderSearch(A1)
Was musst Du anpassen, damit es für Dich läuft?
In dieser Codezeile...
Optional strTMP As String = "C:\Temp\") As String
... musst Du "Temp" durch "Ordner1" ersetzen - bezogen auf Dein Beispiel.
Also den ersten Ordner nach C:\ - sonst würde er ja das komplette Laufwerk durchsuchen. Geht natürlich auch, dauert aber dann etwas länger. ;-)
Willst Du es in einem bestehenden Makro nutzen, dann rufe die Funktion einfach auf:
Sub Main()
ActiveSheet.Range("C1").Value = fncFolderSearch("Dezember")
End Sub
Hier schreibe ich das Ergebnis in "C1". Statt "Dezember" natürlich Dein Ordnername, oder eben eine Variable bzw. eine Zelle.
Wird der Ordner nicht gefunden wird "Kein Ordner gefunden!" ausgegeben. ;-)
Servus
Case

Anzeige
AW: Dazu kannst Du eine Funktion...
08.01.2017 20:18:39
Peter
Halle Case,
super!
Vielen Dank!!!
Hast du eventuell auch ein Lösung zur einer meiner vorher gestellten Frage?
1533122 2017-01-04 17:03:41 Konstante in mehreren Dateien verwenden
Hier komme ich überhaupt nicht weiter.
Lg, Peter

6 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige