Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Prüfen ob Verzeichnis leer ist

Prüfen ob Verzeichnis leer ist
20.08.2015 11:25:16
worm77
Hallo zusammen
Möchte im VBA prüfen, ob ein Input-Vezeichnis leer ist.
Habe über's Internet folgenden Code gefunden und angepasst:
With Application.FileSearch
.NewSearch
.LookIn = InputDrive & ":\" & InputDirectory & "\"
.SearchSubFolders = False
.Filename = "*"   ' Alle Dateien
If .Execute() = 0 Then Exit Sub
End With
In der Variable InputDrive steht folgendes drin: C
In der Variable InputDirectory steht folgendes drin: \temp\Input
Wenn ich's ausführen will, erhalte ich folgende Fehlermeldung:
Run-time error '445'
Object doesn't support this action
Es war ein älterer Forums-Eintrag... vielleicht hat sich da was an der Syntax verändert?
Wäre toll, wenn ihr mir da ne Lösung hättet.
Besten Dank im Voraus und
Gruss Rolf

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob Verzeichnis leer ist
20.08.2015 11:49:47
Rudi
Hallo,
das Filesearch-Objekt gibt es seit Office 2007 nicht mehr.
Ersatz siehe Recherche.
Gruß
Rudi

AW: Prüfen ob Verzeichnis leer ist
20.08.2015 11:50:08
Nepumuk
Hallo,
das FileSearch-Objekt gibt es seit Office 2007 nicht mehr. Versuch es so:

If Dir$(InputDrive & ":\" & InputDirectory & "\*.*") = vbNullString Then Exit Sub
Gruß
Nepumuk

Anzeige
AW: Prüfen ob Verzeichnis leer ist
20.08.2015 11:57:27
worm77
Danke Nepumuk
Hat bestens geklappt!
Gruss Rolf
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Prüfen, ob ein Verzeichnis in Excel leer ist


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob ein Verzeichnis in Excel leer ist, kannst Du VBA (Visual Basic for Applications) verwenden. Folgendes Vorgehen hilft Dir dabei:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code ein, um zu überprüfen, ob das Verzeichnis leer ist:

    Sub CheckIfDirectoryIsEmpty()
        Dim InputDrive As String
        Dim InputDirectory As String
    
        ' Beispielwerte, die Du anpassen kannst
        InputDrive = "C"
        InputDirectory = "\temp\Input"
    
        If Dir$(InputDrive & ":\" & InputDirectory & "\*.*") = vbNullString Then
            MsgBox "Das Verzeichnis ist leer."
        Else
            MsgBox "Das Verzeichnis ist nicht leer."
        End If
    End Sub
  4. Passe die Variablen InputDrive und InputDirectory entsprechend Deinem gewünschten Verzeichnis an.

  5. Führe das Skript aus, um das Ergebnis zu sehen.


Häufige Fehler und Lösungen

  • Fehlermeldung: "Run-time error '445'"
    Dies passiert, wenn Du versuchst, das veraltete FileSearch-Objekt zu verwenden, das seit Office 2007 nicht mehr verfügbar ist. Verwende stattdessen den Dir$-Befehl, wie im obigen Beispiel gezeigt.

  • Falscher Pfad
    Stelle sicher, dass der Pfad zu Deinem Verzeichnis korrekt ist. Ein Tippfehler kann dazu führen, dass das Skript nicht funktioniert.


Alternative Methoden

Eine weitere Möglichkeit, das Verzeichnis zu überprüfen, ist die Verwendung von PowerShell. Du kannst ein PowerShell-Skript erstellen und es über Excel ausführen. Hier ist ein Beispiel:

$path = "C:\temp\Input"
if ((Get-ChildItem $path).Count -eq 0) {
    Write-Host "Das Verzeichnis ist leer."
} else {
    Write-Host "Das Verzeichnis ist nicht leer."
}

Dieser Ansatz ist besonders nützlich, wenn Du mit großen Verzeichnissen arbeitest oder zusätzliche Informationen benötigst.


Praktische Beispiele

  1. Überprüfen eines Benutzereingabeverzeichnisses
    Du kannst ein Input-Feld in Excel erstellen, in das der Benutzer den Verzeichnispfad eingeben kann. Passe das Skript so an, dass es diesen Wert verwendet.

  2. Automatisierte Überprüfung mehrerer Verzeichnisse
    Du könntest eine Schleife einfügen, die mehrere Verzeichnisse durchläuft und prüft, ob sie leer sind. Dies ist hilfreich, wenn Du eine große Anzahl von Verzeichnissen verwalten musst.


Tipps für Profis

  • Fehlerbehandlung
    Baue Fehlerbehandlungsroutinen in Dein VBA-Skript ein, um sicherzustellen, dass das Programm nicht abstürzt, wenn ein ungültiger Pfad eingegeben wird.

  • Nutzung von Funktionen
    Erstelle eine Funktion, die Du in mehreren Makros verwenden kannst, um die Wiederverwendbarkeit Deines Codes zu erhöhen.

  • Debugging
    Nutze die Debugging-Tools im VBA-Editor, um mögliche Fehlerquellen schneller zu identifizieren.


FAQ: Häufige Fragen

1. Kann ich das Skript auch in Excel Online verwenden?
Leider ist VBA nicht in Excel Online verfügbar. Du musst die Desktop-Version nutzen.

2. Was mache ich, wenn das Verzeichnis nicht existiert?
Du kannst eine zusätzliche Überprüfung einbauen, um zu sehen, ob der Pfad existiert, bevor Du versuchst, den Inhalt zu überprüfen. Verwende dafür If Not Dir$(InputDrive & ":\" & InputDirectory) = vbNullString Then.

3. Wie kann ich das Skript anpassen, um nur bestimmte Dateitypen zu überprüfen?
Du kannst den Dir$-Befehl anpassen, indem Du Dir$(InputDrive & ":\" & InputDirectory & "\*.txt") verwendest, um nur Textdateien zu überprüfen.

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