Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
576to580
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
576to580
576to580
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VB Verzeichnisse auslesen

VB Verzeichnisse auslesen
02.03.2005 08:47:29
Slugger
Hallo,
ich hab hier einen VB Code, der mir alle Dateien in Verzeichnissen ausließt und sie mir in eine Spalte untereinander schreibt. Nur steht dann dort der komplette Pfad. Wie stelle ich es an, das mir Excel nur die XLS.Datei reinschreibt, ohne den Pfad. Mit der Dir() Funktion möchte ich es nicht lösen, da ich sonst ja zuviele Pfade angeben müsste.

Private Sub CommandButton1_Click() 'Dateien überprüfen
Dim I As Long
Range("a6:A65536").Clear
With Application.FileSearch
.LookIn = "H:\test"
.SearchSubFolders = True
.Filename = "*.xls"
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count
Sheets(1).Cells(65536, 1).End(xlUp).Offset(5, 0) = .FoundFiles(I)
Next I
End If
End With
End Sub

Wer weiß hier Rat?
Gruß Marti

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VB Verzeichnisse auslesen
02.03.2005 09:16:18
Volker
Hallo Marti,
du kannst den gefundenen Sting ab dem letzten "\" abschneiden.
Der entspr. Befehl lautet InStrRev und zählt die Position eines Zeichens in einem String von hinten. (vergl. InStr)
Mid gibt den Teilstring ab einer bestimmten Postion, in bestimmter Länge wieder.
Dim I As Long
Dim datei As String
Range("a6:A65536").Clear
With Application.FileSearch
.LookIn = "D:\_AAA\Bilder"
.SearchSubFolders = True
.Filename = "*.xls"
If .Execute() &gt 0 Then
For I = 1 To .FoundFiles.Count
datei = Mid(.FoundFiles(I), InStrRev(.FoundFiles(I), "\") + 1)
Sheets(1).Cells(65536, 1).End(xlUp).Offset(5, 0) = .FoundFiles(I)
Next I
End If
End With
Gruß
Volker
Anzeige
AW: VB Verzeichnisse auslesen
02.03.2005 09:16:40
OttoH
Hi Marti,
ich habe hier Dein Makro ein wenig ergänzt: nach Deinem MAkro wird die ganze Liste nocheinmal durchlaufen. Der letzte Backslash wird gesucht und der davoriegende Teil abgeschnitten.

Sub xxx()
Dim I As Long
Range("a2:A65536").Clear
With Application.FileSearch
.LookIn = "c:\murks"
.SearchSubFolders = True
.Filename = "*.*"
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count
Sheets(1).Cells(65536, 1).End(xlUp).Offset(1, 0) = .FoundFiles(I)
Next I
End If
End With
For I = 2 To Application.FileSearch.FoundFiles.Count + 1
Cells(I, 1) = Dateiname(Cells(I, 1))
Next I
End Sub


Function Dateiname(pfad As String)
Dim position As Long
position = WorksheetFunction.Find("#", WorksheetFunction.Substitute(pfad, "\", "#", Len(pfad) - Len(WorksheetFunction.Substitute(pfad, "\", ""))))
Dateiname = Right(pfad, Len(pfad) - position)
End Function

Gruß OttoH
Anzeige
AW: VB Verzeichnisse auslesen
02.03.2005 09:16:56
MichaV
Hi,
z.B. Dateiname=Right(.FoundFiles(I), Len(.FoundFiles(I)) - Len(.LookIn) - 1)
Gruß! Micha
AW: VB Verzeichnisse auslesen
02.03.2005 10:07:08
Slugger
Hallo, Schonmal vielen Danke für die Hilfe
aus irgeneinem Grund jedoch will das nicht gehen. Ich habe es mit allen 3 vorschlägen probiert. Beim ersten steht es noch alles so das wie es war, beim zweiten bekomme ich eine Debugger Meldung.
Weiß nicht worans liegt.....
gruß
AW: VB Verzeichnisse auslesen
02.03.2005 10:10:43
MichaV
und beim dritten?
AW: VB Verzeichnisse auslesen
02.03.2005 10:13:14
Slugger
Hallo, leider auch nicht. Hier nochmal mit dem 1sten und dritten Vorschlag. Den zweiten hab ich erst grad rausgenommen. Ich habs natürlich nicht mit den Strichen gelassen. Die hab ich schon rausgemacht.

Private Sub CommandButton1_Click() 'Dateien überprüfen
Dim I As Long
Dim datei As String
Range("a6:A65536").Clear
With Application.FileSearch
.LookIn = "H:\FT13\BERICHTE\Artikeldatenbank\"
.SearchSubFolders = True
.Filename = "*.xls"
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count
'datei = Mid(.FoundFiles(I), InStrRev(.FoundFiles(I), "\") - 1)         1ster
'datei = Right(.FoundFiles(I), Len(.FoundFiles(I)) - Len(.LookIn) - 1)  2ter
Sheets(1).Cells(65536, 1).End(xlUp).Offset(5, 0) = .FoundFiles(I)
Next I
End If
End With
End Sub

Anzeige
Bitte nochmals um Hilfe o. T.
02.03.2005 12:27:37
Slugger
-
AW: Bitte nochmals um Hilfe o. T.
02.03.2005 12:33:13
Volker
Schau Dir noch mal meinen 1. Thread an.
AW: Bitte nochmals um Hilfe o. T.
02.03.2005 12:37:02
Slugger
Hallo,
hab ich ja, funktioniert aber net. Siehe meinen 2 Thread. Ich hab da nen Fehler drin und find den net. Es steht immer noch alles so da wie es war.
AW: Bitte nochmals um Hilfe o. T.
02.03.2005 13:07:24
MichaV
Hi,
sorry, aber
Sheets(1).Cells(65536, 1).End(xlUp).Offset(5, 0) = Right(.FoundFiles(I), Len(.FoundFiles(I)) - Len(.LookIn) - 1)
klappt bei mir 100% ig. Vielleicht hast Du das mit dem datei= falsch verstanden?
Gruß!
Klappt
02.03.2005 13:52:03
Slugger
Hallo,
ja es hat geklappt. Ich hab nicht gecheckt, das ich das hinter dem Sheets Befehl schreiben muss. Ich hab das eine Zeile weiter oben reingeschrieben.
Vielen Dank an MichaV und alle die geholfen haben.
Gruß Slugger
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige