Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Application Filesearch funktioniert nich

Forumthread: Application Filesearch funktioniert nich

Application Filesearch funktioniert nich
03.11.2020 10:53:51
Dieter
Hallo zusammen,
ich nutze folgenden Code um Dokumente und deren Pfad auszulesen.

Sub suchen()
Dim Dateiname As String
Dim Suchbegriff As String
Dim Pfad As String
Pfad = "Pfad"
Dim x, y As Integer
Dim objFS As FileSearch
Set objFS = Application.FileSearch
y = ActiveWorkbook.Sheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row
For x = 2 To y
Suchbegriff = ActiveWorkbook.Sheets("Tabelle1").Cells(x, 2).Value
Dateiname = Pfad & "\" & Suchbegriff
With objFS
.NewSearch
.Filename = Suchbegriff
.LookIn = Pfad
.SearchSubFolders = True
If .Execute > 0 Then
ActiveWorkbook.Sheets("Tabelle1").Cells(x, 3).Value = .FoundFiles(1)
End If
End With
Next
End Sub

Leider bricht er mit bei Set objFS = Application.FileSearch immer ab mit der Begründung.
"Objekt unterstützt diese Aktion nicht"
In der Bibliothek sind dabei die Verweise auf "Microsoft Scripting Runtime" gesetzt.
Wäre über Hilfe sehr dankbar!!
VG
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Application Filesearch funktioniert nich
03.11.2020 11:00:04
AlterDresdner
Hallo Dieter,
Filesearch gibt es seit Exc2007 nicht mehr.
Google mal FileSearch VBA, da werden Sie geholfen...
Gruß der ALteDresdner
AW: Application Filesearch funktioniert nich
03.11.2020 11:40:42
Nepumuk
Hallo Dieter,
teste mal:
https://www.herber.de/bbs/user/141270.xlsm
Gruß
Nepumuk
Anzeige
AW: Application Filesearch funktioniert nich
03.11.2020 11:50:47
Dieter
Hallo Nepumuk,
besten Dank für die Antwort!
Leider bekomme ich die Meldung:
"Benutzerdefinierter Typ nicht definiert": in der Zeile: Dim objFileSearch As clsFileSearch
Weist du woran das liegt?
Vg und beste Grüße
AW: Application Filesearch funktioniert nich
03.11.2020 11:54:01
Nepumuk
Hallo Dieter,
dann fehlt in deiner Datei das Klassenmodul "clsFileSearch". Das kannst du einfach in Projektexplorer per Drag&Drop aus meiner Mappe in deine ziehen.
Gruß
Nepumuk
Anzeige
AW: Application Filesearch funktioniert nich
03.11.2020 12:06:19
Dieter
Ach super, das habe ich jetzt geschafft.
Leider bekomme ich jetzt in der Zeile:
".NewSearch" die Meldung: "Methode oder Datenobjekt nicht gefunden"
VG
AW: Application Filesearch funktioniert nich
03.11.2020 12:06:56
Dieter
Und besten Dank! Sry für die Fragen, etwas neu auf dem Gebiet...
AW: Application Filesearch funktioniert nich
03.11.2020 12:11:35
Nepumuk
Hallo Dieter,
Hauptsache es läuft. :-)
Gruß
Nepumuk
Anzeige
AW: Application Filesearch funktioniert nich
03.11.2020 12:15:26
Dieter
Hallo Nepumuk,
wie gesagt in der Zeile
.NewSearch
bekomme ich noch die Fehlermeldung von vorherigem Post.
Könntest du da noch hinschauen? :)
VG
AW: Application Filesearch funktioniert nich
03.11.2020 12:17:44
Nepumuk
Hallo Dieter,
.NewSearch = True

Das ist in meiner Klasse eine Eigenschaft und keine Methode.
Gruß
Nepumuk
Anzeige
Nachtrag
03.11.2020 12:18:51
Nepumuk
Hallo Dieter,
halte dich an mein Beispiel.
Gruß
Nepumuk
AW: Nachtrag
03.11.2020 12:34:36
Dieter
Hallo Dieter,
danke für deine Mühe.
Leider bekomme ich immer noch die Fehlermeldung:
NewSearch:
Fehler beim Kompilieren:
Mehtode oder Datenobjekt nicht gefunden.
Dabei habe ich mich strikt an dein Beispiel gehalten...
Danke für deine Mühen.
VG
Anzeige
nur mal kurz...
03.11.2020 12:37:46
Oberschlumpf
Hi Dieter,
dann zeig doch mal genau die Datei, in der der Fehler auftritt, als dass du immer wieder - nur - den Fehler beschreibst...
Ciao
Thorsten
;
Anzeige

Infobox / Tutorial

Anwendung von FileSearch in VBA


Schritt-für-Schritt-Anleitung

Um die FileSearch-Funktion in VBA zu nutzen, folge diesen Schritten:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Erstelle ein neues Modul (Rechtsklick auf "VBAProject" > Einfügen > Modul).

  3. Füge den folgenden Code ein:

    Sub suchen()
       Dim Dateiname As String
       Dim Suchbegriff As String
       Dim Pfad As String
       Pfad = "Pfad" ' Ändere diesen Pfad entsprechend deinem Bedarf
       Dim x, y As Integer
       Dim objFS As Object ' Verwende Object anstelle von FileSearch
       Set objFS = CreateObject("Scripting.FileSystemObject") ' Erstelle ein FileSystemObject
       y = ActiveWorkbook.Sheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row
       For x = 2 To y
           Suchbegriff = ActiveWorkbook.Sheets("Tabelle1").Cells(x, 2).Value
           Dateiname = Pfad & "\" & Suchbegriff
           ' Suche nach Dateien
           If objFS.FileExists(Dateiname) Then
               ActiveWorkbook.Sheets("Tabelle1").Cells(x, 3).Value = Dateiname
           End If
       Next
    End Sub
  4. Ändere den Pfad in der Zeile Pfad = "Pfad" zu dem Verzeichnis, in dem du suchen möchtest.

  5. Führe das Makro aus (F5).


Häufige Fehler und Lösungen

  • Fehler: "Objekt unterstützt diese Aktion nicht"
    Dieser Fehler tritt auf, weil Application.FileSearch in Excel 2007 und später entfernt wurde. Verwendet stattdessen ein FileSystemObject.

  • Fehler: "Benutzerdefinierter Typ nicht definiert"
    Überprüfe, ob du das Klassenmodul clsFileSearch korrekt importiert hast. Wenn nicht, ziehe es aus einer funktionierenden Datei.

  • Fehler: "Methode oder Datenobjekt nicht gefunden" bei .NewSearch
    Diese Methode ist nicht mehr verfügbar. Stattdessen setze die Eigenschaft NewSearch in deinem Code nicht mehr ein.


Alternative Methoden

Falls FileSearch nicht mehr unterstützt wird, kannst du folgende Alternativen in Betracht ziehen:

  1. FileSystemObject: Wie im obigen Beispiel gezeigt, ist dies die gängigste Methode, um Dateien zu suchen.
  2. VBA-Filtermethoden: Nutze die Filtermethoden von Excel, um gezielt Daten zu suchen und zu verarbeiten.
  3. Datenbankanbindungen: Falls du große Datenmengen verarbeiten musst, kann eine Anbindung an eine Datenbank (z.B. Access) sinnvoll sein.

Praktische Beispiele

Hier ein Beispiel, wie du die Suche nach Dateien mit FileSystemObject effizient gestalten kannst:

Sub SucheNachDateien()
    Dim fso As Object
    Dim folder As Object
    Dim file As Object
    Dim Pfad As String
    Pfad = "C:\Dein\Pfad" ' Ändere diesen Pfad entsprechend deinem Bedarf
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(Pfad)

    For Each file In folder.Files
        If InStr(file.Name, "Suchbegriff") Then
            Debug.Print file.Path ' Gibt den Pfad der gesuchten Datei aus
        End If
    Next
End Sub

Tipps für Profis

  • Nutze Error Handling, um Fehler beim Ausführen des Codes abzufangen. Beispiel:

    On Error Resume Next
    ' Dein Code hier
    If Err.Number <> 0 Then
       MsgBox "Fehler: " & Err.Description
    End If
    On Error GoTo 0
  • Halte deine VBA-Referenzen in der Bibliothek aktuell, um sicherzustellen, dass keine veralteten Objekte verwendet werden.

  • Experimentiere mit VBA-Arrays, um mehrere Ergebnisse gleichzeitig zu speichern und zu verarbeiten.


FAQ: Häufige Fragen

1. Warum funktioniert FileSearch in meiner Excel-Version nicht?
FileSearch wurde in Excel 2007 entfernt. Stattdessen solltest du FileSystemObject verwenden.

2. Wie kann ich sicherstellen, dass mein Code auch in älteren Excel-Versionen funktioniert?
Vermeide die Verwendung von Funktionen, die in neueren Versionen entfernt wurden, und teste deinen Code in verschiedenen Versionen.

3. Was kann ich tun, wenn ich viele Dateien durchsuchen möchte?
Erwäge, eine Datenbankverbindung zu verwenden, um die Suche zu optimieren oder nutze Filtermethoden von Excel.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige