Alle *.xls Dateien in einem Ordner löschen
Schritt-für-Schritt-Anleitung
Um alle *.xls Dateien in einem Ordner mit VBA zu löschen, kannst Du den folgenden Code verwenden. Dieser Ansatz ist besonders nützlich, wenn Du eine große Anzahl an Excel-Dateien löschen möchtest.
Sub KillEmAll()
' Löscht alle .xls im Verzeichnis
Const strVerz As String = "c:\test\test\"
Kill strVerz & "*.xls"
End Sub
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu starten.
- Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" wählst.
- Kopiere den obigen Code in das Modul.
- Ändere den Pfad in
strVerz
entsprechend Deinem Verzeichnis.
- Führe das Makro aus, um alle *.xls Dateien in dem angegebenen Ordner zu löschen.
Häufige Fehler und Lösungen
-
Fehlermeldung 70: Zugriff verweigert
- Stelle sicher, dass Du über die nötigen Berechtigungen für den Zugriff auf den Ordner verfügst oder dass keine der Dateien geöffnet ist.
-
Excel Datei kann nicht gelöscht werden
- Wenn sich die Excel-Datei, die das Makro ausführt, im selben Ordner wie die zu löschenden Dateien befindet, kann dies zu einem Zugriffsproblem führen. Verschiebe die Datei an einen anderen Ort, um dies zu vermeiden.
-
Keine Fehlermeldung, aber keine Aktion
- Überprüfe, ob der Pfad korrekt eingegeben wurde. Auch Leerzeichen im Pfad können Probleme verursachen. Verwende Hochkommas um den Pfad, z.B.
"C:\Meine Daten\*.xls"
.
Alternative Methoden
Wenn der Kill
Befehl nicht funktioniert, kannst Du auch die FileSystemObject
-Methode verwenden:
Sub DerFileKiller()
Dim oFS As Object, oFolder As Object, oFile As Object
Const strFolder As String = "c:\test\test"
Set oFS = CreateObject("scripting.filesystemobject")
Set oFolder = oFS.getfolder(strFolder)
For Each oFile In oFolder.Files
If oFile Like "*.xls" And oFile.Name <> ThisWorkbook.Name Then
oFS.deletefile oFile
End If
Next
End Sub
Diese Methode durchläuft alle Dateien im angegebenen Ordner und löscht nur die .xls
Dateien, die nicht mit der aktuellen Arbeitsmappe identisch sind.
Praktische Beispiele
Hier sind einige praktische Beispiele, wie Du die oben genannten Methoden nutzen kannst:
- Um alle Excel-Dateien in einem bestimmten Verzeichnis zu löschen, setze den
strVerz
Pfad auf den entsprechenden Ordner.
- Wenn Du nur Dateien löschen möchtest, die älter als ein bestimmtes Datum sind, kannst Du eine zusätzliche Bedingung in die Schleife einfügen, um das Änderungsdatum zu prüfen.
Tipps für Profis
- Backup erstellen: Bevor Du alle Dateien löschst, stelle sicher, dass Du ein Backup hast, um Datenverluste zu vermeiden.
- Testlauf: Führe zunächst das Makro in einem Testverzeichnis aus, um sicherzustellen, dass es wie gewünscht funktioniert.
- Automatisierung: Du kannst das Makro auch so einrichten, dass es automatisch zu bestimmten Zeiten ausgeführt wird, um regelmäßig alte Dateien zu löschen.
FAQ: Häufige Fragen
1. Was passiert, wenn ich eine Datei lösche, die ich nicht mehr benötige?
Wenn Du eine Datei mit dem Kill
Befehl löschst, wird sie ohne Möglichkeit zur Wiederherstellung gelöscht. Stelle sicher, dass Du die richtige Datei löschst.
2. Kann ich auch andere Dateitypen löschen?
Ja, einfach den Dateityp im Code anpassen, z.B. *.xlsx
für neuere Excel-Dateien.
3. Wie kann ich sicherstellen, dass ich keine wichtigen Dateien lösche?
Überprüfe den Inhalt des Ordners vor dem Ausführen des Makros oder implementiere eine Bestätigungsabfrage im Code.
4. Funktioniert dies in allen Excel-Versionen?
Die Beispielcodes sollten in Excel 2007 und neuer funktionieren. Achte darauf, dass Application.FileSearch
in Excel 2007 nicht mehr verfügbar ist.