Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1728to1732
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

Letzten Ordner löschen

Letzten Ordner löschen
16.12.2019 15:29:32
Steve
Moin Leute,
ich stehe vor einem Rätsel. Ich habe ein Makro mit dem ich Ordner in einem Ordnersystem löschen oder verschieben kann.
Das funktioniert grundsätzlich auch, aber gelegentlich wird ein Ordner nicht verschoben oder gelöscht.
Meiner Beobachtung nach vor allem dann, wenn es der letzte Ordner im Hauptordner ist, oder wenn ich mehrere Ordner direkt hintereinander lösche oder verschiebe.
Wenn ich nach dem auftreten des Problems speichere und die Datei schließe, dann wird die Aktion meistens aber leider nicht immer nachgeholt.
Hat jemand eine Antwort auf dieses Rätsel und wenn ja, eine Idee wie ich dem begegnen kann?
Ich kann mir darauf keinen Reim machen.
Liebe Grüße
Steve

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzten Ordner löschen
16.12.2019 16:05:13
ChrisL
Hi Steve
Wenn ich raten müsste... die Schleife läuft vorwärts statt rückwärts.
cu
Chris
AW: Letzten Ordner löschen
17.12.2019 14:49:01
Steve
Moin Chris,
Vielleicht war das unglücklich ausgedrückt, aber da ist keine Schleife. Habe es ganz einfach gestaltet.
Das Makro sucht an einem bestimmten Ort den Ordnernamen der dem Sheetnamen entspricht und löscht ihn.
Jeder löschvorgang wird einzeln und manuell ausgelöst. (Es kommt selten vor, das mehr als ein Ordner gleichzeitig gelöscht werden muss.)
Wie schon erwähnt funktioniert das ganze auch. Aber wenn mal der Fall auftritt, das der zu löschende Ordner just der letzte im Hauptordner ist, dann hakt das ganze so lange bis die Datei geschlossen wird. Dann erst verschwindet der Ordner.
Ich sende dir hier mal das Makro dazu.
Sub LÖSCHEN()
Dim Blatt As String, Datum As String, strPfad As String
Dim fso As Object
Dim z As Long, lZ As Long
Dim objFSO As Object
strPfad = ThisWorkbook.Path
Blatt = ActiveSheet.Range("D1")
'Ordner löschen'
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFolder (strPfad & "\001 AKTIV\" & Blatt)
Set objFSO = Nothing
'Sheet löschen'
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
'Listeneinträge löschen'
lZ = Sheets("Startseite").Cells(65536, 2).End(xlUp).Row
For z = lZ To 1 Step -1
With Sheets("Startseite")
If .Cells(z, 2) = Blatt Then .Rows(z).Delete
End With
With Sheets("LISTE")
If .Cells(z, 1) = Blatt Then .Rows(z).Delete
End With
Next
End Sub
entsprechend habe ich auch ein Makro Unterordner von einem Hauptordner umbenennt und in einen anderen Hauptordner verschiebt. Da tritt das Problem auch, aber wesentlich seltener auf.
Dachte zunächst das liegt am Computer, aber an einem anderen Rechner habe ich dasselbe Problem.
Liebe Grüße
Steve
Anzeige
Anmerkung
17.12.2019 15:27:13
Steve
Moin Chris,
ich habe mich vorhin an was anderem versucht und dabei einen Fehler verursacht. Dadurch ist mir was aufgefallen.
Normalerweise haben die zu löschende Unterordner noch eigene Unterordner und Dateien.
Durch meinen Fehler war der zu löschende Ordner nun ohne Unterordner. Das klappte tadellos.
Heisst ich musste die Datei nicht schließen und neustarten damit der Ordner schlussendlich verschwindet.
Kann das irgendwie mit meinem Code im zusammenhang stehen? Ich weiss nämlich, das ich meinen Code wegen der Unterordner schon einmal ändern musste. Das hatte damals nämlich ausschließlich geklappt wenn der Ordner leer war.
Ich hoffe du konntest mir ein wenig folgen.
Liebe Grüße
Steve
Anzeige
AW: Anmerkung
17.12.2019 18:25:18
ChrisL
Hi Steve
Kannst du den Ordner manuell im Explorer löschen, während die Mappe geöffnet ist? (Zugriffsfehler ausschliessen)
Kann sein, dass der Inhalt erst geleert werden muss. Dann würde ich mal die Sternchen-Variante testen:
https://www.rondebruin.nl/win/s4/win004.htm
    'Delete files
FSO.deletefile MyPath & "\*.*", True
'Delete subfolders
FSO.deletefolder MyPath & "\*.*", True
Oder hier:
https://stackoverflow.com/questions/25401789/remove-directory-and-its-contents-files-subdirectories-without-using-filesys
    Kill dirStr & "*.*"
RmDir dirStr
Achtung: Sternchen löscht alles d.h. auf dem richtigen Ordner anwenden, wäre von Vorteil.
cu
Chris
Anzeige
AW: Anmerkung
19.12.2019 13:21:00
Steve
Moin Chris,
habe gestern leider nicht geschafft zu antworten. Ich danke dir für deine Hilfe. Ich werde beides mal ausprobieren.
Tatsächlich ist es nicht schlimm wenn es dann wirklich, also so richtig richtig gelöscht wird.
Aber ich denke sicherheitshalber werde ich eine Warnmeldung mit abbruchmöglichkeit vorweg setzen.
Sollte es zu Schwierigkeiten kommen melde ich mich einfach nochmal.
Liebe Grüße und schöne Feiertage
Steve

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige