Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
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

File ausgehend von Rootverzeichnis finden

File ausgehend von Rootverzeichnis finden
28.12.2016 23:04:42
Rootverzeichnis
Hallo Zusammen,
ich versuche gerade, über folgendes Skript einen Dateinamen ausgehend von einem Startverzeichnis zu suchen und den Pfad der gefunden Datei in einem Sheet auszugeben.
Dabei stoße ich auf folgende Probleme:
- Laufzeitfehler 70: Zugriff verweigert
- Die Datei kann sich in einer beliebig tiefen Verzeichnisstruktur befinden. Derzeit loope ich nur durch alle Unterordner ausgehend vom Startverzeichnis. Gibt es eine Möglichkeit, dass auch Unterordner von Unterordner usw. durchlaufen werden?
Sub Test2()
Dim FSO As Object
Dim oFolder As Object
Dim oSubFolder As Object
Dim sFile As String
Dim sPath As String
Dim oSubFile As Object
Dim oSubFiles As Object
Dim lngZ As Long
lngZ = 1
Set FSO = CreateObject("scripting.filesystemobject")
sPath = "C:\Users\Anton\"
sFile = "2013.9 Move D Live @ DISCOVERY.mp3"
Set oFolder = FSO.getfolder(sPath)
Set oFiles = oFolder.Files
If Dir(sPath & sFile)  "" Then
Tabelle1.Cells(lngZ, 1).Value = sPath
Else
If oFolder.SubFolders.Count > 0 Then
For Each oSubFolder In oFolder.SubFolders
Set oSubFiles = oSubFolder.Files
For Each oSubFile In oSubFiles
If oSubFile.Name Like sFile Then
Tabelle1.Cells(lngZ, 1).Value = sPath
End If
Next oSubFile
Next oSubFolder
End If
End If
End Sub
Würde mich über Rückmeldung freuen.
Schöne Grüße,
Anton

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: File ausgehend von Rootverzeichnis finden
28.12.2016 23:13:23
Rootverzeichnis
Hallo,
versuche es mit dem "Supercode" von snb:

Sub M_snb_dir()
sn = Split(CreateObject("wscript.shell").exec("cmd /c dir ""c:\Meine_gesuchte_Datei.xls"" _
/b/s").stdout.readall, vbCrLf)
For Each d In sn
Debug.Print d
Next d
End Sub
Pfad und Dateinamen müssen angepasst werden, die Ausgabe ist im Direkrfenster.
mfg
AW: File ausgehend von Rootverzeichnis finden
28.12.2016 23:20:41
Rootverzeichnis
Wow... Funktioniert einwandfrei.
Vielen Dank Fennek und auch an snb! Das ist wirklich ein "Superskript" :)
Schönen Abend noch.
VG Anton
AW: File ausgehend von Rootverzeichnis finden
29.12.2016 01:22:15
Rootverzeichnis
Hallo Fennek,
jetzt habe ich noch mal eine Frage. Will die Übergabe des Verzeichnis und des Dateinamens dynamisch gestalten. Leider wird nichts gefunden. Kann der Pfad & File überhaupt in einer Variablen übergeben werden?
Danke für Deine Rückmeldung.
Private Sub CommandButton1_Click()
Dim lngZ As Long
Dim z As Long
Dim strPfad As String
Dim strInput As String
Dim strTrackZeile As String
Dim varDat() As String
lngZ = 1
i = 0
strTrackZeile = Me.TextBox1.Text
strPfad = "C:\Users\Anton\"
If strTrackZeile  "" Then
varDat = Split(strTrackZeile, ",")
For z = LBound(varDat) To UBound(varDat)
strInput = varDat(z)
sn = Split(CreateObject("wscript.shell").exec("cmd /c dir " & strPfad & strTrackZeile &  _
" /b/s").stdout.readall, vbCrLf)
For Each d In sn
ReDim varDat(LBound(varDat) To UBound(varDat), LBound(varDat) To UBound(varDat)) _
varDat(0, i) = d
i = i + 1
Next d
Next z
End If
Tabelle1.Cells(1, 1).Value = varDat
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
With Me
.Label1.Caption = "Bitte Tracknamen im Format track1.mp3," & vbCrLf & "track2.mp3,...  _
eingeben"
.TextBox1.MultiLine = True
.TextBox1.TabIndex = 1
.CommandButton1.TabIndex = 2
.CommandButton2.TabIndex = 3
End With
End Sub
VG Anton
Anzeige
Nur statisches Verzeichnis möglich?
29.12.2016 10:26:54
Anton
Hat vielleicht jemand eine Idee?
Es geht mir um folgende Zeile:
sn = Split(CreateObject("wscript.shell").exec("cmd /c dir " & strPfad & strTrackZeile &  _
" /b/s").stdout.readall, vbCrLf)
Wenn ich hier den Startpfad und den gesuchten Dateinamen statisch und nicht in Form wie oben zusammengesetzt aus zwei Variablen angebe, wird ausgelesen, ansonsten nicht. Ist hier allgemein eine Pfadangabe in Form von Variablen nicht erlaubt?
Danke & VG,
Anton
AW: Nur statisches Verzeichnis möglich?
29.12.2016 10:48:34
Gerd
Hallo Anton,
was steht in
strPfad
und in
strTrackZeile
?
Gruß Gerd
Anzeige
AW: Nur statisches Verzeichnis möglich?
29.12.2016 10:57:03
Fennek
Hallo,
ja, man kann Pfad und Dateiname variable übergeben, ungeprüft sieht der Code gut aus. Falls Leerzeichen oder Umlaute dabei sind, müssen noch mehr Hochkomma gesetzt werden.
mfg
AW: Nur statisches Verzeichnis möglich?
29.12.2016 11:09:14
Anton
Hallo Zusammen,
danke für die schnelle Rückmeldung. Folgende Daten sind enthalten:
strPfad = "C:\Users\Anton\"
strTrackZeile ="2013.9 Move D Live @ DISCOVERY.mp3"
Schöne Grüße,
Anton
AW: Nur statisches Verzeichnis möglich?
29.12.2016 12:27:08
Fennek
Hallo,
ohne "@" hat das geklappt:

sPath = "c:\temp\"
sFile = "Neu Leer.txt"
iFile = chr(34) & sPath & sFile & chr(34)
sn = Split(CreateObject("wscript.shell").exec("cmd /c dir " & iFile & " /b/s").stdout.readall, _
vbCrLf)
For Each d In sn
msgbox d
Next d
Entscheidend sind dabei die "-Zeichen.
mfg
Anzeige
Läuft nun - Danke für Eure Hilfe!
29.12.2016 13:52:26
Anton
.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige