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

Forumthread: Datei aus Ordner löschen

Datei aus Ordner löschen
02.10.2020 10:53:39
Lisa
Hallo liebe VBAler :-)
Vielleicht könnt ihr mir beim Löschen einer Datei mit VBA weiterhelfen?
Folgende Situation:
Eine Datei wird autamotisch gedownloaded.
Sobald man sie öffnet, speichert ein Makro sie auf einem bestimmten Laufwerk ab.
Das funktioniert soweit.
Nun soll die Datei jedoch danach unmittelbar auch aus dem Download Order gelöscht werden, hier kommt jedoch folgende Fehlermeldung:
"Laufzeitfehler 53: Datei nicht gefunden"
Der Code ist wie folgt aufgebaut:

Private Sub Workbook Open
Dim Datei As String
Datei = "file:\\C:\Users\q12345\Downloads\Dateiname.xlsm"
Kill Datei
Application.DisplayAlerts = True
End Sub

--> Ist hier der Dateipfad falsch angegeben?
Der Debugger hängt immer bei "Kill Datei"
Liebe Grüße, Lisa
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei aus Ordner löschen
02.10.2020 11:09:11
chris
Hallo,
versuchs mal so.

Private Sub Workbook Open
Dim Datei As String
Datei = "C:\Users\q12345\Downloads\Dateiname.xlsm"
Kill Datei
Application.DisplayAlerts = True
End Sub

AW: Datei aus Ordner löschen
02.10.2020 11:14:56
Lisa
Hi Chris,
funzt leider nicht.
Es kommt die Fehlermeldung: "Laufzeitfehler 70 - Zugriff verweigert".
Die Datei wurde auch nicht gelöscht...
Zugriff haben wir aber - wir können die Datei manuell nämlich löschen.
LG
Anzeige
sorry kann nicht weiter helfen.Gebe weiter
02.10.2020 11:16:27
chris
.
AW: sorry kann nicht weiter helfen.Gebe weiter
02.10.2020 11:19:01
Lisa
Vielleicht bin ich zur Kill Funktion nicht berechtigt - besser: Delete?
AW: Datei geschlossen?
02.10.2020 11:22:23
Fennek
Hallo,
solange die Datei geöffnet ist, könnte das Löschen schwierig werden.
mfg
Anzeige
AW: Datei geschlossen?
02.10.2020 11:24:47
Lisa
Hi Fennek,
ja, das haben wir uns auch schon gedacht.
Wenn ich aber in der geöffneten Datei unter den Datenpfad schaue, steht da jedoch bereits der neue Datenpfad drin, unter den es beim Öffnen neu abgespeichert wurde.
Dennoch kann es vermutlich das sein ...
AW: Datei geschlossen?
02.10.2020 11:28:48
Lisa
Vorhin wollten wir mit dem gleichen Code jedoch mal eine Datei löschen, die geschlossen war. Das hat auch nicht funktioniert. Er mag das Kill Datei nicht ....
Anzeige
AW: Datei geschlossen?
02.10.2020 12:01:08
EtoPHG
Hallo,
Kill kann nur vom User ausgeführt werden, der dafür auch berechtigt ist!
Wenn also q12345 im Pfad nicht dem eingeloggten User entspricht, wird Kill einen Fehler produzieren!
Gruess Hansueli
Mit dem Latein am Ende
02.10.2020 12:15:47
Lisa
Hi Hansueli,
das passt auch - q12345 ist der im Windows eingeloggte User.
Puh...
Anzeige
AW: Mit dem Latein am Ende
02.10.2020 12:39:53
chris
Was passiert wenn du die Datei auf Laufwerk z.b D: kopierst und das im Code änderst.
Wird sie dann gelöscht ? Dann liegts am Recht das du auf c nicht löschen darfst.
;

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

Dateien aus dem Ordner mit VBA löschen


Schritt-für-Schritt-Anleitung

Um eine Datei aus einem Ordner mit VBA zu löschen, kannst du den Kill Befehl verwenden. Hier ist eine einfache Anleitung:

  1. Öffne den VBA-Editor in Excel, indem du ALT + F11 drückst.

  2. Erstelle ein neues Modul:

    • Klicke auf Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Sub DateiLoeschen()
       Dim Datei As String
       Datei = "C:\Users\q12345\Downloads\Dateiname.xlsm"
       On Error Resume Next
       Kill Datei
       If Err.Number <> 0 Then
           MsgBox "Fehler beim Löschen der Datei: " & Err.Description
           Err.Clear
       End If
       On Error GoTo 0
    End Sub
  4. Starte das Makro, um die Datei zu löschen. Achte darauf, dass die Datei nicht geöffnet ist, da dies zu einem Laufzeitfehler führen kann.


Häufige Fehler und Lösungen

  • Laufzeitfehler 53: Datei nicht gefunden:

    • Überprüfe den Dateipfad auf Tippfehler oder falsche Verzeichnisse. Stelle sicher, dass die Datei tatsächlich existiert.
  • Laufzeitfehler 70: Zugriff verweigert:

    • Dies kann passieren, wenn die Datei geöffnet ist oder wenn du nicht die nötigen Berechtigungen hast. Stelle sicher, dass die Datei geschlossen ist und du die erforderlichen Berechtigungen hast.
  • Die Datei kann nicht gelöscht werden:

    • Wenn du die Datei nicht manuell löschen kannst, könnte es an einem Berechtigungsproblem liegen. Versuche, die Datei auf ein anderes Laufwerk zu verschieben und den Pfad im Code entsprechend anzupassen.

Alternative Methoden

Falls der Kill Befehl nicht funktioniert, kannst du alternativ die FileSystemObject-Methode verwenden:

Sub DateiLoeschenMitFSO()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")

    Dim Datei As String
    Datei = "C:\Users\q12345\Downloads\Dateiname.xlsm"

    If fso.FileExists(Datei) Then
        fso.DeleteFile Datei
    Else
        MsgBox "Die Datei existiert nicht."
    End If
End Sub

Mit dieser Methode kannst du auch überprüfen, ob die Datei existiert, bevor du versuchst, sie zu löschen.


Praktische Beispiele

  • Beispiel 1: Löschen einer Datei, wenn sie vorhanden ist:

    Sub DateiLoeschenWennVorhanden()
       Dim Datei As String
       Datei = "C:\Users\q12345\Downloads\Dateiname.xlsm"
    
       If Dir(Datei) <> "" Then
           Kill Datei
       Else
           MsgBox "Datei nicht gefunden."
       End If
    End Sub
  • Beispiel 2: Löschen aller .xlsm Dateien im Download-Ordner:

    Sub AlleDateienLoeschen()
       Dim Datei As String
       Dim Dateipfad As String
       Dateipfad = "C:\Users\q12345\Downloads\*.xlsm"
    
       Datei = Dir(Dateipfad)
       Do While Datei <> ""
           Kill Dateipfad
           Datei = Dir()
       Loop
    End Sub

Tipps für Profis

  • Verwende die On Error Resume Next-Anweisung, um Fehler im Code zu ignorieren und stattdessen benutzerfreundliche Fehlermeldungen auszugeben.
  • Halte den Code sauber und gut dokumentiert, damit du später leichter Änderungen vornehmen kannst.
  • Teste den Code in einer geschützten Umgebung, bevor du ihn in deiner Produktivumgebung ausführst.

FAQ: Häufige Fragen

1. Warum kann ich die Datei nicht löschen? Es könnte sein, dass die Datei geöffnet ist oder du nicht die nötigen Berechtigungen hast. Stelle sicher, dass sie geschlossen ist und überprüfe die Berechtigungen.

2. Was ist der Unterschied zwischen Kill und FileSystemObject? Kill ist eine einfachere Methode zum Löschen, während FileSystemObject mehr Flexibilität bietet, z.B. das Überprüfen, ob die Datei existiert, bevor sie gelöscht wird.

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