Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1776to1780
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Leere Ordner löschen

Leere Ordner löschen
02.09.2020 08:20:01
xtian
Guten morgen zusammen,
ich benötige bei einem Makro Hilfe. Auf meinem Rechner befinden sich sehr viele teilweise kleiner aber auch
größere Ordnerstrukturen. Folgendes soll das Makro können:
1. Der Explorer oder so soll geöffnet werden und ich kann eine vorhandene Ordnerstruktur auswählen.
2. Das Makro sucht in der ausgewählten Ordnerstruktur nach leeren Ordnern. Leer bedeutet, keine
Unterordner und auch keine anderen Dateien.
3. Werden keine leere Ordner gefunden, kommt eine MsgBox mit der Information: Keine leeren Ordner gefunden.
Werden leere Ordner gefunden, soll in einer MsgBox der Pfad angegeben werden wo sich der leere Ordner befindet.
Mit dem Button "löschen" soll der leere Ordner dann gelöscht werden. Mit dem Button "weiter" soll der Ordner
nicht gelöscht werden und das Makro soll weiter zum nächsten leeren Ordner springen.
Vorab Herzlichen Dank für Eure Unterstützung.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leere Ordner löschen
02.09.2020 08:51:14
Oberschlumpf
Hi,
dann zeig uns doch mal dein Makro, bei dem du Hilfe benötigst.
Ciao
Thorsten
AW: Leere Ordner löschen
02.09.2020 09:15:37
xtian
Danke für die schnelle Antwort. Hier was ich bereits habe:
Sub loeschen()
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oSourceFolder = oFSO.GetFolder(pfad)
For Each subpfad In oSourceFolder.Subfolders
Debug.Print subpfad
loeschen subpfad
Next
strFile = "\*.txt"
strFound = Dir(pfad & strFile)
Do While strFound  ""
Kill pfad & "\" & strFound
strFound = Dir
Loop
If oSourceFolder.Files.Count = 0 And oSourceFolder.Subfolders.Count = 0 Then RmDir pfad
End Sub
Leider läuft das Makro nicht so wie es soll.
Anzeige
AW: Leere Ordner löschen
02.09.2020 09:26:51
Danielnnd
Hi
Was ist denn der Unterschied zwischen "soll" und "ist"?
Bzw, was macht das Makro und was soll es tun?
Noch ne Frage zum Verständnis:
Orndner A0 enthält die UnterOrner A1 un A2, aber keine weiteren Dateien.
A1 und A2 sind leer.
Soll jetzt A0 auch zum löschen angeboten werden?
Gruß Daniel
AW: Leere Ordner löschen
02.09.2020 09:43:48
xtian
Hallo,
es kommen leider nur Fehlermeldungen. Habe das wohl komplett zerstört.
Zum Start soll es die Möglichkeit geben, eine Ordnerstruktur auszuwählen. Das fehlt
hier noch komplett. Außerdem fehlt das Thema MsgBox noch komplett.
Zu deiner Frage: Es sollen nur Ordner zum löschen angeboten werden, die auch wirklich
leer sind. Beinhaltet ein Ordner einen Unterordner, soll dieser nicht zum löschen
angeboten werden.
Anzeige
AW: Leere Ordner löschen
02.09.2020 10:04:49
Oberschlumpf
Hi,
ok, dann spinn ich die Idee von Daniel doch mal weiter:
"Orndner A0 enthält die UnterOrner A1 un A2, aber keine weiteren Dateien.
A1 und A2 sind leer."

Ok, Unterordner A1 + A2 sind leer und können ja gelöscht werden, weil sie keine Dateien enthalten.
Und JETZT kann AUCH A0 gelöscht werden, oder?
nohc ne Frage:
"Zum Start soll es die Möglichkeit geben, eine Ordnerstruktur auszuwählen"
WAS genau meinst du damit?
Soll ein bestimmter Ordner ausgewählt werden?
Und soll nun NUR IN DIESEM Ordner alles geprüft/gelöscht werden?
Nur, wenn dieser eine gewählte Ordner Unterordner enthält ohne was drin, dann kann dieser leere Unterordner gelöscht werden?
Es soll also NUR EINE Ordner-Ebene geprüft werden, und zwar DIE EBENE, die du zuvor ausgewählt hast?
Ciao
Thorsten
Anzeige
AW: Leere Ordner löschen
02.09.2020 10:24:18
xtian
Hallo Thorsten,
vielen Dank für deine Hilfe. Das Problem hat sich erledigt.
Viele Grüße
AW: Leere Ordner löschen
02.09.2020 10:11:58
fcs
Hallo xtian,
hier mein Vorschlag für ein entsprechendes Makro.
Du kannst komplett mit dem SO arbeiten. Dir ist nicht erforderlich.
LG
Franz
'Ohne Verweis im VBA-Editor auf Microsoft Scripting Runtime
Sub prcLoeschen_leere_Ordner()
Dim varFolder
Dim FSO As Object, FSOFolder As Object, FSOSubFolder As Object
Dim intLeer%, intGeloescht%, intFolder%
Dim sMsgTitel As String
sMsgTitel = "L Ö S C H E N   L E E R E   O R D N E R"
Set FSO = VBA.CreateObject("Scripting.Filesystemobject")
Ordner_Auswahl:
intFolder = 0
intLeer = 0
intGeloescht = 0
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Löschen leere Ordner - übergeordneten Ordner auswählen"
If .Show = -1 Then
varFolder = .SelectedItems(1)
Else
GoTo Beenden
End If
End With
Set FSOFolder = FSO.GetFolder(varFolder)
For Each FSOSubFolder In FSOFolder.SubFolders
intFolder = intFolder + 1
If FSOSubFolder.Files.Count = 0 And FSOSubFolder.SubFolders.Count = 0 Then
intLeer = intLeer + 1
If MsgBox("Folgenden UnterOrdner löschen?" & vbLf _
& FSOSubFolder.Name, _
vbOKCancel, sMsgTitel) = vbOK Then
FSOSubFolder.Delete
intGeloescht = intGeloescht + 1
End If
End If
Next
'Statistik anzeigen
If intLeer = 0 Then
If MsgBox("Durchsuchter Ordner " & vbLf _
& FSOFolder.Path & vbLf & vbLf _
& "Anzahl Unterordner: " & intFolder & vbLf _
& "Keine leeren Ordner gefunden", _
vbRetryCancel, sMsgTitel) = vbRetry Then GoTo Ordner_Auswahl
Else
If MsgBox("Durchsuchter Ordner " & vbLf _
& FSOFolder.Path & vbLf & vbLf _
& "Anzahl Unterordner: " & intFolder & vbLf _
& "Anzahl leere Unterordner: " & intLeer & vbLf _
& "Anzahl gelöschte Unterordner: " & intGeloescht, _
vbRetryCancel, sMsgTitel) = vbRetry Then GoTo Ordner_Auswahl
End If
Beenden:
Set FSO = Nothing: Set FSOFolder = Nothing: Set FSOSubFolder = Nothing
End Sub

Anzeige
AW: Leere Ordner löschen
02.09.2020 10:22:49
xtian
Hallo Franz,
ganz herzlichen Dank für deine Hilfe. Das Makro arbeitet Perfekt.
Viele Grüße

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige