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

Forumthread: im Ordner alle Dateien löschen

im Ordner alle Dateien löschen
25.07.2005 07:56:22
Gisela
Hallo,
kann mir bitte jemand sagen, wie ich in einem bestimmten Ordner alle Dateien ohne weitere Nachfrage löschen kann?
Vielen Dank und Grüße
Gisela
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: im Ordner alle Dateien löschen
25.07.2005 08:40:30
Nepumuk
Hi,
wirklich löschen, oder in den Papierkorb verschieben?
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: im Ordner alle Dateien löschen
25.07.2005 09:28:58
Gisela
Hallo Nepumuk,
vielen Dank, dass Du Dich meines Problems annimmst.
Die Dateien sollen gelöscht werden. Ich hab in der Recherche folgendes Makro gefunden:

Sub Verzeichnis_leer()
ChDir "C:\Dokumente und Einstellungen\XXX\Desktop\Neue Proben\WWW"
Kill ("C:\Dokumente und Einstellungen\XXX\Desktop\Neue Proben\WWW\*.xls")
End Sub

Funktioniert teilweise. Wenn keine Dateien vorhanden sind, erhalte ich eine Fehlermeldung.
Da es sein kann, dass ein User schon mal die Dateien händisch gelöscht hat, soll das Makro auch laufen (ohne Fehlermeldung), wenn keine Dateien zum löschen vorhanden sind.
Hast Du dafür noch einen Tipp?
Vielen Dank und Gruß
Gisela
Anzeige
AW: im Ordner alle Dateien löschen
25.07.2005 09:37:04
Unbekannter
musst noch den pfad und den filter ändern dann kommt kein fehler mehr

Sub Verzeichnis_leer()
If Dir("c:\temp\") = Empty Then
Else
ChDir ("C:\temp\")
Kill ("c:\temp\*.*")
End If
End Sub

gruss UN1
Änderung
25.07.2005 09:42:57
Unbekannter
falls nur xls dateien keine anderen in dem ordner gelöscht werden sollen dann musst du
den nehmen

Sub Verzeichnis_leer()
If Dir("c:\temp\*.xls") = Empty Then
Else
ChDir ("C:\temp\")
Kill ("c:\temp\*.xls")
End If
End Sub

Anzeige
AW: Änderung
25.07.2005 09:51:49
Nepumuk
Hi,
wozu die Konstruktion mit einem leeren Else?
Sub Verzeichnis_leer()
    If Dir("c:\temp\*.xls") <> Empty Then
        ChDir ("C:\temp\")
        Kill ("c:\temp\*.xls")
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Änderung
25.07.2005 09:54:46
Unbekannter
also: wenn c:\temp keine xls hat dann nichts, sonst lösche die alle.
ist da ran was falsch.
AW: Änderung
25.07.2005 09:57:22
Nepumuk
Hi,
nicht falsch, aber sinnlos. Vergeiche mit ungleich sind übrigens schneller, wie Vergleiche mit =
Gruß
Nepumuk
AW: Änderung
25.07.2005 10:01:21
Unbekannter
gut dann halt so,aber wie machst du das mit dem farbigen code ?
Anzeige
AW: Änderung
25.07.2005 10:06:08
Nepumuk
Hi,
das ist ein spezielles Tool, das in den VBA - Editor eingebunden ist. Wir sind momentan noch in der Testphase. Ab September wird es zum Download freigegeben. Schau einfach ab und zu hier vorbei: http://www.online-excel.de/
Gruß
Nepumuk
AW: im Ordner alle Dateien löschen
25.07.2005 09:38:27
Nepumuk
Hallo Gisela,
logisch:
Public Sub loeschen()
    Dim objFSO As Object, objFile As Object
    On Error GoTo err_
        Set objFSO = CreateObject("Scripting.FileSystemObject")
    For Each objFile In objFSO.GetFolder("D:\Eigene Dateien\Test").Files 'Ordner anpassen!!
        objFile.Delete
    Next
    exit_:
    Set objFSO = Nothing
    Exit Sub
    err_:
    MsgBox "Fehler " & CStr(Err.Number) & vbLf & vbLf & _
        Err.Description, 16, "Fehler"
    Resume exit_
    End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
Klappt super, vielen Dank an Beide o.T.
25.07.2005 10:21:30
Gisela
o
;

Forumthreads zu verwandten Themen

Anzeige
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

Alle Dateien in einem Ordner mit VBA löschen


Schritt-für-Schritt-Anleitung

Um alle Dateien in einem bestimmten Ordner mit VBA zu löschen, kannst du folgendes Makro verwenden. Dieses Makro stellt sicher, dass keine Fehlermeldung erscheint, wenn der Ordner leer ist:

Sub Verzeichnis_leer()
    If Dir("C:\temp\") <> "" Then
        ChDir ("C:\temp\")
        Kill ("C:\temp\*.*") ' Alle Dateien löschen
    End If
End Sub

Ändere den Pfad "C:\temp\" zu dem gewünschten Ordner, in dem die Dateien gelöscht werden sollen. Damit werden alle Dateien im angegebenen Verzeichnis gelöscht.


Häufige Fehler und Lösungen

Ein häufiger Fehler ist, dass das Makro eine Fehlermeldung ausgibt, wenn keine Dateien im Ordner vorhanden sind. Um dies zu vermeiden, stelle sicher, dass du die Dir-Funktion korrekt verwendest:

  • Fehler: "Datei nicht gefunden"
    • Lösung: Überprüfe den angegebenen Pfad und stelle sicher, dass der Ordner existiert.

Alternative Methoden

Eine andere Methode zum Löschen von Dateien in einem Ordner ist die Verwendung des FileSystemObject. Hier ist ein Beispiel:

Public Sub loeschen()
    Dim objFSO As Object, objFile As Object
    On Error GoTo err_
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    For Each objFile In objFSO.GetFolder("D:\Eigene Dateien\Test").Files ' Ordner anpassen!!
        objFile.Delete
    Next

    exit_:
        Set objFSO = Nothing
        Exit Sub
    err_:
        MsgBox "Fehler " & CStr(Err.Number) & vbLf & vbLf & Err.Description, 16, "Fehler"
        Resume exit_
End Sub

Mit dieser Methode kannst du spezifischere Bedingungen und Fehlerbehandlungen implementieren.


Praktische Beispiele

  1. Alle Excel-Dateien im Ordner löschen:
Sub Excel_Dateien_loeschen()
    If Dir("C:\temp\*.xls") <> "" Then
        ChDir ("C:\temp\")
        Kill ("C:\temp\*.xls") ' Nur .xls Dateien löschen
    End If
End Sub
  1. Dateien mit bestimmten Kriterien löschen (z.B. nach Datum):

Hier kannst du die Logik erweitern, um nur Dateien zu löschen, die älter als ein bestimmtes Datum sind.


Tipps für Profis

  • Verwende On Error Resume Next vorsichtig, um unerwünschte Fehlermeldungen zu vermeiden.
  • Teste dein Makro immer in einem sicheren Verzeichnis, um Datenverlust zu verhindern.
  • Setze Rückfragen ein, bevor du Dateien endgültig löschst, um einen versehentlichen Verlust wichtiger Daten zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur bestimmte Dateitypen gelöscht werden? Du kannst den Filter in der Kill-Anweisung anpassen, z.B. Kill ("C:\temp\*.txt") für Textdateien.

2. Was passiert, wenn ich versuche, eine Datei zu löschen, die gerade verwendet wird? In diesem Fall wird eine Fehlermeldung angezeigt. Du kannst eine Fehlerbehandlung implementieren, um dies zu vermeiden.

3. Kann ich das Makro auch für Unterordner verwenden? Ja, du müsstest die Logik erweitern, um durch Unterordner zu iterieren und die Dateien dort zu löschen.

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