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

Forumthread: Ordner löschen per VBA

Ordner löschen per VBA
03.01.2023 08:36:18
Gerd
Hallo zusammen,
ich habe ein Problem, das mit Excel nicht direkt etwas zu tun hat.
Zur Erklärung: Unter C:\Users\Name\Downloads habe ich einen Ordner, dessen Name zu lang ist (mehr als 260 Zeichen), was dank Windows dazu führt, dass ich den Ordner weder löschen, umbenennen oder verschieben kann. Alle mir bekannten Bereinigungstools finden den Ordner zwar, können aber nicht darauf zugreifen. Auch per Eingabeaufforderungen bzw. Powershell kann er nicht entfernt werden.
Meine Idee ist nun, dass ich aus einer beliebigen Excel-Datei ein Makro starte, das den Ordner löscht oder vielleicht besser, meinen Download-Ordner komplett leert. Ich weiß nicht, ob das funktionieren könnte, aber falls das geht, wie müsste so ein Makro aussehen? Meine VBA-Kenntnisse beschränken sich auf „Makro aufzeichnen“. Deshalb wäre ich dankbar für einen Code und die Anweisung, wie und wo der einzubauen ist.
Besten Dank im Voraus
Gerd
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Ordner löschen per VBA
03.01.2023 10:10:25
Gerd
Danke für die Rückmeldung. Aber mir fehlt scheinbar das Verständnis, das umzusetzen.
Ich habe mir eine Datei Ordnerloeschen.xlsm angelegt und in Modul1 den Code wie im Beispiel 2 eingegeben:

Sub Ordnerloeschen()
Kill "C:\Users\Name\Downloads\*"
End 

Sub
Ich erhalte einen Laufzeitfehler 53 und "Datei nicht gefunden". Sorry für meine Ahnungslosigkeit. Was genau müsste ich tun?
Gerd

Anzeige
AW: Ordner löschen per VBA
03.01.2023 11:24:14
Dieteer(Drummer)
Hallo Gerd,
da hast du ein Anführungszeichen vergessen: Sub Ordnerloeschen()
Kill "C:\Users\Name\Downloads\"*"
End
Hoffe es hilft :-).
Gruß, Dieter(Drummer)
AW: Ordner löschen per VBA
03.01.2023 11:30:30
Gerd
Hallo Dieter,
mit Anführungsstriche kommt die Fehlermeldung "Typen unverträglich"
Beste Grüße
Gerd
Anzeige
AW: Ordner löschen per VBA
03.01.2023 10:55:21
Franziska
Hallo Gerd,
wie wäre es mit dem Kommandozeilenbefehl "cmd" über Windows-Logo-Taste + R, dann Deine Eingabe mit " C:\Users\Name\Downloads\hier den Ordnernamen eintragen " und dann Enter und mit Ja bestätigen. So kann man jeden Ordner löschen. Ob das mit VBA geht, weiß ich nicht.
schöne Woche noch
Franziska
Anzeige
AW: Ordner löschen per VBA
03.01.2023 11:02:17
Gerd
Hallo Franziska,
danke für den Hinweis.
Wenn es so einfach wäre, würde ich nicht nach einem Umweg suchen. Der Ordnername ist zu lang, Windows ist da zickig. Deshalb kam mir die Idee über VBA.
beste Grüße
Gerd
AW: Ordner löschen per VBA
03.01.2023 11:40:50
Gerd
hallo Franziska,
die Seite kenne ich, das hatte ich schon probiert. Leider funktioniert das nicht. Auch rm oder rmdir funktionieren nicht, ebenso wenig wie diverse "Aufräumtools" wie CCleaner & Co.
Schöne Grüße
Gerd
AW: Ordner löschen per VBA
03.01.2023 13:14:27
Anton
Hallo Gerd,
du kannst versuchen den langen Pfad mit dem cmd-Befehl subst trennen und dann den Ordner löschen.
mfg Anton
Anzeige
AW: Ordner löschen per VBA
03.01.2023 13:32:02
Gerd
Hallo zusammen,
Ich habe einen einfachen Code gefunden:

Sub Ordnerloeschen()
ChDir "C:\Users\Name\Downloads\testordner\"
RmDir "C:\Users\Name\Downloads\testordner\"
End Sub
Den Testordner kann ich damit löschen, den Ordner mit dem zu langen Namen aber nicht (Meldung: Pfad nicht gefunden).
Soll es denn tatsächlich keine Möglichkeit geben, einen Ordner mit zu langem Namen zu löschen?
Danke und Grüße
Gerd
Anzeige
AW: Ordner löschen per VBA
04.01.2023 19:28:03
Firmus
Hi Gerd,
Es steht nirgends wie der zu löschende Pfad genau aussieht.
Ich nehme an
a) der Pfadname auf einem Ordnerlevel ist größer 260 Bytes.
Dann muss ich auch passen
b) der Fullpath ist größer 260 Zeichen
Beispiel: "C:\Users\Name\Downloads\250-zeichen-langer-ordnername\"
In diesem Fall ist die "fullpath"-Länge größer 260 Zeichen.
getestete Lösung:
im CMD-prompt mit CD Level für Level in der Ordnerhierarchie weiter navigieren.
Wenn die Restlänge des Teils des fullpath kleiner 260 ist, kann per RD der Ordner gelöscht werden.
Ich habe nicht getestet, ob ich mehrere Levels mit einem RD löschen kann
Gruß,
Firmus
Anzeige
;

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

Ordner löschen mit VBA und CMD


Schritt-für-Schritt-Anleitung

Um einen Ordner über VBA in Excel zu löschen, kannst du den folgenden Code verwenden. Beachte, dass der Ordnername nicht länger als 260 Zeichen sein sollte, da Windows hier Probleme bereiten kann.

  1. Öffne Excel und erstelle eine neue Arbeitsmappe.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub Ordnerloeschen()
       On Error Resume Next ' Fehler ignorieren
       RmDir "C:\Users\Name\Downloads\Ordnername" ' Ersetze "Ordnername" mit dem tatsächlichen Namen
       On Error GoTo 0 ' Fehlerbehandlung zurücksetzen
    End Sub
  5. Speichere die Datei als Ordnerloeschen.xlsm.

  6. Führe das Makro aus, um den Ordner zu löschen.

Wenn der Pfad zu lang ist, kannst du auch ChDir verwenden, um in das Verzeichnis zu wechseln und dann RmDir anzuwenden.


Häufige Fehler und Lösungen

  • Laufzeitfehler 53 (Datei nicht gefunden): Überprüfe den Pfad und den Namen des Ordners. Stelle sicher, dass der Ordner existiert und der Pfad korrekt ist.

  • Typen unverträglich: Dies kann auftreten, wenn Anführungszeichen fehlen oder der Pfad falsch formatiert ist. Achte darauf, dass du den richtigen Code verwendest.

  • Pfad nicht gefunden: Wenn der Ordnername zu lang ist, kann VBA Schwierigkeiten haben, den Pfad zu erkennen. In diesem Fall könnte der CMD-Befehl nützlich sein.


Alternative Methoden

Wenn das Löschen über VBA nicht funktioniert, kannst du versuchen, den Ordner über die Eingabeaufforderung (CMD) zu löschen:

  1. Drücke Windows + R, tippe cmd ein und drücke Enter.
  2. Verwende den Befehl rd /s /q "C:\Users\Name\Downloads\Ordnername" um den Ordner zu löschen.

Zusätzlich kann der Befehl subst verwendet werden, um einen langen Pfad zu einem kürzeren Laufwerksbuchstaben zuzuordnen, wodurch das Löschen erleichtert wird.


Praktische Beispiele

Hier sind einige Beispiele, die dir helfen können, den Ordnerinhalt als Liste auszugeben oder leere Ordner zu finden:

  • Ordnerinhalt als Liste ausgeben:

    Sub OrdnerinhaltAuflisten()
       Dim Datei As String
       Datei = Dir("C:\Users\Name\Downloads\*.*")
       Do While Datei <> ""
           Debug.Print Datei
           Datei = Dir
       Loop
    End Sub
  • Leere Ordner finden:

    Sub LeereOrdnerFinden()
       Dim Ordner As String
       Ordner = "C:\Users\Name\Downloads\*"
       Dim fso As Object
       Set fso = CreateObject("Scripting.FileSystemObject")
       If fso.GetFolder(Ordner).SubFolders.Count = 0 Then
           Debug.Print "Leerer Ordner: " & Ordner
       End If
    End Sub

Tipps für Profis

  • Verwende On Error Resume Next, um Fehler zu ignorieren, wenn du versuchst, einen Ordner zu löschen, der möglicherweise nicht existiert.
  • Bei der Verwendung von vba rmdir solltest du sicherstellen, dass der Ordner leer ist, bevor du ihn löschst, da rmdir nur leere Ordner entfernt.
  • Halte deine VBA-Skripte gut dokumentiert, um die Wartung und das Debugging zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich einen Ordner mit zu langem Namen löschen?
Verwende den CMD-Befehl mit rd /s /q oder trenne den langen Pfad mit dem subst Befehl.

2. Was muss ich tun, wenn der VBA-Code nicht funktioniert?
Überprüfe den Pfad und die Berechtigungen. Wenn der Ordnername das Limit überschreitet, versuche es über CMD.

3. Kann ich auch Dateien in einem Ordner mit VBA löschen?
Ja, du kannst den Kill Befehl verwenden, um alle Dateien in einem Ordner zu löschen, z.B. Kill "C:\Users\Name\Downloads\*.*".

Mit diesen Anleitungen und Tipps solltest du in der Lage sein, Ordner effizient zu löschen und mit VBA zu arbeiten.

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