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

Dateiordner nach Dateinamen suchen und öffnen

Dateiordner nach Dateinamen suchen und öffnen
29.07.2016 12:52:49
Markus
Hallo zusammen!
Ich bin seit 2 Tagen dabei eine Excelliste zu basteln über die ich Zip Datein leichter/ schneller finde indem ich nur einen Teil des Namens in ein Feld eintrage und danach mit dem Befehlsbutton Suchen mir öffnen lasse.
Dies funktioniert einwandfrei! - Solange ich einen festen Ordner vorgebe in dem er suchen soll.
Mein Problem: Ich möchte dass er nicht nur den angegebenen Ordner durchforstet sondern auch deren Unterordner.
Gesucht wird nach Produktteilen die in verschiedenen Ordnern abliegen. Um eine Übersicht zu gewährleisten kann ich keinen globalen Ordner, wo alle Produkte drin sind anlegen und 2 mal sollen die Produkte nicht abliegen, somit müssen die Unterordner bestehen bleiben.
Mein Makro:

Sub DateienAuflisten()
Dim strVerzeichnis As String
Dim strTyp As String
Dim strDateiname As String
Dim loZeile As Long
Dim Datei As String
strTyp = "*.zip"
Application.ScreenUpdating = False
strVerzeichnis = "i:\DATEIPFAD\ÜBERORDNER\SPEZIELLER_UNTERORDER\"
strDateiname = Dir(strVerzeichnis & strTyp)
loZeile = 1
Datei = ActiveSheet.Range("F13")  'hier tippe ich die ersten paar Zahlen ein, wie der  _
Dateiname anfängt
With ThisWorkbook.Worksheets(7) 'Tabellenblatt 7---- Wird in Finaldatei schon mit Namen  _
angesprochen, falls Tabellenblatt mal verschoben wird.
Do While strDateiname  ""
If InStr(strDateiname, Datei) > 0 Then .Cells(14, 1) = strDateiname  ' Zelle A14,   _
_
hier wird der Link zur gefundenen Datei kurz abgespeichert
strDateiname = Dir
'loZeile = loZeile + 1
Loop
End With
ActiveWorkbook.FollowHyperlink strVerzeichnis & ActiveSheet.Range("A14")
Application.ScreenUpdating = True
MsgBox "fertig"   'Hier fange ich das Makro nur kurz ab, damit ich sehe, ob ich eine  _
Endlosschleife drin habe.
Range("A14").Select
Selection.ClearContents   'hier lösche ich den kurz abgespeicherten Link wieder raus
End Sub

Ich habe schon versucht einfach nur den Backslash am Ende zu entfernen damit er in die Unterordner geht zum Suchen, was er aber nicht macht und im Internet habe ich bis jetzt keine nützliche Lösung meines Problems gefunden.
Ich hoffe ihr könnt mir weiterhelfen, besten Dank schonmal und ein schönes Wochenende,
Gruß Markus

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiordner nach Dateinamen suchen und öffnen
29.07.2016 13:05:03
Fennek
Hallo,
sofern es nur einen Unterordner geben kann, hilft "FSO"(file.scripting.obeject) mit der Funktion "Subfolder" recht gut.
Wenn es viele Ebenen geben kann, ist der alte DOS-Befehl

dir *.zip /s/b > c:\temp\Datei_Liste.txt
besser (auch direkt aus xl vba)
mfg
AW: Dateiordner nach Dateinamen suchen und öffnen
29.07.2016 13:14:20
Markus
Kann mir gerade nicht ganz vorstellen, wo ich genau deine Zeile jetzt wie hinzufügen soll bzw etwas ersetzen soll.
Der Pfad sieht Beispielshalber so aus :
i:\DATEIPFAD\ÜBERORDNER\SPEZIELLER_UNTERORDER1\ 20ZipDateien
______________________\SPEZIELLER_UNTERORDER2\ 25ZipDateien
______________________\SPEZIELLER_UNTERORDER3\ 35ZipDateien
______________________\SPEZIELLER_UNTERORDER4\ 70ZipDateien
Nun soll er alle speziellen Unterordner nach meiner Zip durchsuchen.
Könntest du mir das mal in mein Makro als Kommentar einfügen was du verbessern möchtest? Also deine gesamte neue Zeile als Kommentar unter die, die ich ersetzen soll, damit ich besser nachvollziehen kann.
MfG Markus
Anzeige
AW: Dateiordner nach Dateinamen suchen und öffnen
29.07.2016 13:33:44
Fennek
Hallo,
deinen Code werde ich nicht prüfen.
Eine Kurzfassung:

Sub sFold()
sPath = "c:\users\office\"
sFile = "*.zip"
ar = Split(CreateObject("wscript.shell").exec("cmd /c Dir " & sPath & sFile & " /b /s").stdout. _
readall, vbCrLf)
For i = 0 To UBound(ar)
Debug.Print ar(i) 'gibt ins VBA Direktfenster alle Pfad + Dateinamen aus
Next i
End Sub
mfg
AW: Dateiordner nach Dateinamen suchen und öffnen
01.08.2016 07:04:21
Markus
Hallo!
Das bringt mich nicht zu meiner Lösung und hilft mir auch nicht.
DU sollst nicht mein Makro prüfen, es funktioniert.
Lediglich bat ich darum eine Idee ins laufende Makro einzubinden, was ich dann geprüft hätte.
Ich habe nicht umsonst dieses Thema eröffnet und darum gebeten die Zeile so einzufügen, dass ich es mir anschauen und ausprobieren kann.
mfg
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige