Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
852to856
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
852to856
852to856
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

verzeichnis durchsuchen / Ausgabe listbox

verzeichnis durchsuchen / Ausgabe listbox
08.03.2007 11:34:00
Patrick
Hallo,
wende mich mal wieder mit einem Problem an euch. Ich habe eine Userform auf der liegt eine Textbox, eine Listbox und ein Commandbutton. Ich möchte nun ein genau definiertes Verzeichnis (Z:\Server) nach dem in der Textbox eingegebenen Suchkriterium (in dem Verzeichnis liegen nur *.xls Dateien) durchsuchen und die gefundenen Dateien in der Listbox auflisten. Mittels Klick in die Listbox wird die entsprechende Datei dann geöffnet. Ich habe schon in der Recherche kräftig gesucht hab nichts gefunden. Was wohl noch wichtig ist, das Verzeichnis beinhaltet auch Unterverzeichnisse die mit durchsucht werden sollen und es soll nicht nur nach kompletten Namen sondern auch nach Fragmenten gesucht werden.
Bitte helft mir.
Danke
Patrick

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

Betreff
Datum
Anwender
Anzeige
AW: verzeichnis durchsuchen / Ausgabe listbox
08.03.2007 12:13:00
IngGi
Hallo Patrick,
so bekommst du die Dateinamen inklusive Pfad in deine ListBox:
Sub test()
Dim fso As Object
Dim fo As Object
Dim sf As Object
Dim f As Object
Set fso = CreateObject("Scripting.FileSystemObject")
If fo Is Nothing Then Set fo = fso.GetFolder("Z:\Server\")
For Each f In fo.Files
'Namen von UserForm1, ListBox1 und TextBox1 anpassen
If InStr(1, f.Name, UserForm1.TextBox1) > 0 Then
With UserForm1.ListBox1
.AddItem
.List(.ListCount) = f.Path
End With
End If
Next 'f
For Each sf In fo.SubFolders
Set fo = sf
test 'Name dieses Makros - bei Änderung anpassen
Next 'sf
End Sub
Gruß Ingolf
Anzeige
AW: verzeichnis durchsuchen / Ausgabe listbox
08.03.2007 12:20:21
harry
Hallo Patrick,
versuchs mal mit:
Dim fs As Object, i As Long
Set fs = Application.FileSearch
With fs
.LookIn = "Z:\Server"
.Filename = "*" & textbox1.Value & "*.xls"
.SearchSubFolders = True
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
For i = 1 To .FoundFiles.Count
Cells(i, 1).Value = .FoundFiles(i)
Next i
Else
MsgBox "There were no files found."
End If
End With
das gibt die Dateien zunächst mal in Deiner Arbeitsmappe aus.
über die RowSource Eigenschaft Deiner Listbox, kannst Du diese
dann noch füllen
Gruß
Harry
Anzeige
AW: verzeichnis durchsuchen / Ausgabe listbox
08.03.2007 13:18:00
Patrick
Hallo,
also der 1. Vorschlag funktioniert leider gar nicht bringt bei mir immer einen Fehler "Stapelüberlauf". Der 2. Vorschlag läuft einwandfrei nur frage ich mich ob es nicht möglich ist die Daten gleich in die Listbox einzulesen ohne den Zwischenschritt mit dem Tabellenblatt.
Gruß
Patrick
AW: verzeichnis durchsuchen / Ausgabe listbox
08.03.2007 13:54:00
harry
Hallo Patrick,
schön dass mein Code funktioniert
ein direktes Einlesen ist natürlich möglich
z.B. erst ein Array mit den Dateinamen füllen (in einer Schleife)
und dann das Array in die Listbox einlesen mit
"UserForm1.ListBox1.List = array_mit_Dateinamen"
Gruß
Harry
Anzeige
AW: verzeichnis durchsuchen / Ausgabe listbox
08.03.2007 14:25:36
Patrick
Hallo Harry,
kannst du mir vielleicht noch einen Tip geben wie das mit dem Array füllen funktioniert. Das einlesen sollte ich dann hinbekommen hoffe ich.
Vielen Dank
Gruß
Patrick
AW: verzeichnis durchsuchen / Ausgabe listbox
08.03.2007 14:58:33
harry
Also Patrick,
hier die Komplettlösung:
Sub test()
Dim fs As Object, i As Long
Set fs = Application.FileSearch
With fs
.LookIn = "Z:\Server"
.Filename = "*" & textbox1.Value & "*.xls"
.SearchSubFolders = True
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
'Array auf richtige Größe einstellen
ReDim Dat_Arr(.FoundFiles.Count)
'Array füllen
For i = 1 To .FoundFiles.Count
Dat_Arr(i) = .FoundFiles(i)
Next i
Else
MsgBox "There were no files found."
End If
End With
'vorhandene Einträge löschen
UserForm1.ListBox1.Clear
'Array in Listbox füllen
UserForm1.ListBox1.List = Dat_Arr
'Formular anzeigen
UserForm1.Show
End Sub

Gruß
Harry
Anzeige
AW: verzeichnis durchsuchen / Ausgabe listbox
08.03.2007 15:10:00
Patrick
Hallo Harry,
vielen vielen Dank für deine tolle Hilfe (bzw. Lösung) funktioniert genial.
Danke !!!
Gruß
Patrick

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige