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

Dir und Unterverzeichnisse - von Ramses am 18.

Dir und Unterverzeichnisse - von Ramses am 18.
18.02.2004 23:35:58
Hans-Werner Schmidt
Hallo Ramses
den Code interessiert mich sehr,aber ich bekomm es nicht hin Ich habe habe folgende Fehlermeldungen:
1. .FileType = Dateiform
2. Me.ListBox1.AddItem (gefFile)
im Debugger
was mache ich falsch?
Starkes Interesse ,ich schau morgen wieder rein.
Hans-Werner Schmidt

Sub Find_Files_with_Textfragment()
Dim i As Long
Dim gefFile As String, dname As String
Dim Suchpfad As String, Suchbegriff As String, Dateiform As String
Dim oldStatus As Variant, myMatch As Boolean, msgTxt As String, Qe As Variant
Suchpfad = InputBox("Geben Sie den Ordner an, der durchsucht werden soll:", "Pfad definieren", Application.DefaultFilePath)
If Suchpfad = "" Then Exit Sub
Dateiform = InputBox("Geben Sie den Dateityp an der gesucht werden soll", "Dateierweiterung", "*.xls")
If Dateiform = "" Then Exit Sub
Suchbegriff = InputBox("Geben Sie den Text an der in den Dateien gesucht werden soll", "Textfragment", "")
If Suchbegriff = "" Then Exit Sub
msgTxt = "Soll auf exakte Übereinstimmung mit dem Dateinamen gesucht werden ? "
msgTxt = msgTxt & vbCrLf & "Bei ""Nein"" werden als Ergebnis auch Dateien angezeigt,"
msgTxt = msgTxt & vbCrLf & "bei denen nur ein Teil des Namens mit:"" " & Suchbegriff & " "" übereinstimmt !"
Qe = MsgBox(msgTxt, vbQuestion + vbYesNo, "Suchroutine")
If Qe = vbOK Then
myMatch = True
Else
myMatch = False
End If
'Bildschirmaktualisier abschalten
Application.ScreenUpdating = True
'Text der Statusbar und alten Status aufnehmen
oldStatus = Application.StatusBar
'Start der Suchroutine
With Application.FileSearch
.NewSearch
.LookIn = Suchpfad
.TextOrProperty = Suchbegriff
.SearchSubFolders = True
' = True wenn der Suchbegriff GENAU übereinstimmen soll
' = False wenn nur ein Teil des Dateinamens übereinstimmen soll
.MatchTextExactly = myMatch
.FileType = Dateiform
If .Execute() > 0 Then
totFiles = .FoundFiles.count
'Ausgabe in Statusbar
Application.StatusBar = "Total " & totFiles & " gefunden"
For i = 1 To .FoundFiles.count
gefFile = .FoundFiles(i)
'In Listbox eintragen mit der AddItem Methode
Me.ListBox1.AddItem (gefFile)
Next i
End If
End With
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
:-)
18.02.2004 23:54:08
Ramses
Hallo
Fehler meinerseits, da habe ich was übersehen :-)


Sub Find_Files_with_Textfragment()
Dim As Long
Dim gefFile As String, dname As String
Dim Suchpfad As String, Suchbegriff As String, Dateiform As String
Dim oldStatus As Variant, myMatch As Boolean, msgTxt As String, Qe As Variant
Suchpfad = InputBox("Geben Sie den Ordner an, der durchsucht werden soll:", "Pfad definieren", Application.DefaultFilePath)
If Suchpfad = "" Then Exit Sub
Dateiform = InputBox("Geben Sie den Dateityp an der gesucht werden soll", "Dateierweiterung", "*.xls")
If Dateiform = "" Then Exit Sub
Select Case Right(Dateiform, 3)
    Case "doc"
        Dateiform = msoFileTypeWordDocuments
    Case "xls"
        Dateiform = msoFileTypeExcelWorkbooks
    Case "ppt"
        Dateiform = msoFileTypePowerPointPresentations
    Case "htm"
        Dateiform = msoFileTypeWebPages
    Case Else
        Dateiform = msoFileTypeAllFiles
End Select
Suchbegriff = InputBox("Geben Sie den Text an der in den Dateien gesucht werden soll", "Textfragment", "")
If Suchbegriff = "" Then Exit Sub
msgTxt = "Soll auf exakte Übereinstimmung mit dem Dateinamen gesucht werden ? "
msgTxt = msgTxt & vbCrLf & "Bei ""Nein"" werden als Ergebnis auch Dateien angezeigt,"
msgTxt = msgTxt & vbCrLf & "bei denen nur ein Teil des Namens mit:"" " & Suchbegriff & " "" übereinstimmt !"
Qe = MsgBox(msgTxt, vbQuestion + vbYesNo, "Suchroutine")
If Qe = vbOK Then
    myMatch = True
Else
    myMatch = False
End If
'Bildschirmaktualisier abschalten
Application.ScreenUpdating = True
'Text der Statusbar und alten Status aufnehmen
oldStatus = Application.StatusBar
'Start der Suchroutine
With Application.FileSearch
    .NewSearch
    .LookIn = Suchpfad
    .TextOrProperty = Suchbegriff
    .SearchSubFolders = True
    ' = True wenn der Suchbegriff GENAU übereinstimmen soll
    ' = False wenn nur ein Teil des Dateinamens übereinstimmen soll
    .MatchTextExactly = myMatch
    .FileType = Dateiform
    If .Execute() > 0 Then
        totFiles = .FoundFiles.Count
        'Ausgabe in Statusbar
        Application.StatusBar = "Total " & totFiles & " gefunden"
        For i = 1 To .FoundFiles.Count
            gefFile = .FoundFiles(i)
             'In Listbox eintragen mit der AddItem Methode
            Me.ListBox1.AddItem (gefFile)
        Next i
    End If
End With
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5


Um den Code laufen zu lassen, brauchst du eine Userform, in der eine Listbox mit dem Namen "Listbox1" vorhanden ist.
Der Code muss aus der Userform gestartet werden.

Gruss Rainer
Anzeige
AW: :-)
19.02.2004 21:32:01
Hans-Werner
Danke
ich werde es ausprobieren.
Vielen Dank für deine Bemühungen
Werner Schmidt
Merci :-) Geschlossen o.T.
19.02.2004 21:32:42
Ramses
...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige