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

VBA - Verzeichnisse erstellen und manuell löschen

VBA - Verzeichnisse erstellen und manuell löschen
Christian
Hallo bestes Forum,
per vba möchte ich ein Haupt-Verzeichnis erstellen, falls dieses noch nicht existiert.
In diesem Ordner werden weitere Unterordner erstellt (auch wieder nur dann, wenn es diese noch nicht gibt).
Diese mit meinem Script (siehe unten) erstellten Verzeichnisse zeigen ein seltsames Verhalten.
- beim ersten Durchlauf werden die Ordern erstellt. Im Explorer kann ich diese auch wieder manuell löschen (rechte Maustaste auf das Hauptverzeichnis - löschen - alles weg).
- wenn ich dieses Makro aber ein zweites Mal starte (ohne nach dem ersten Durchlauf die neu erstellten Ordner manuell zu löschen), lässt dich das Haupt-Verzeichnis nicht mehr löschen.
Hier kommt die Meldung:
"Verzeichnis kann nicht gelöscht werden ... wird von einem anderen Programm verwendet..."
Wenn ich dann Excel schließe, klappt's wieder - also irgendwo ist da ein Fehler in meinem Makro.
Hat Jemnad 'ne Idee?
WinXP, Office 2003
vielen Dank vorab,
Christian

Option Explicit
Sub CreateFolders()
Dim blnDir As Boolean
Dim strMainDir As String, strSubDir As String, strMsg As String
Dim i As Long, lngCnt As Long
strMainDir = ThisWorkbook.Path & "\TestVerzeichnis"
'Hauptverzeichnis erstellen
If Dir(strMainDir, vbDirectory) = "" Then
MkDir strMainDir
blnDir = True
End If
'Unterverzeichnisse erstellen
For i = 1 To 3
strSubDir = strMainDir & "\" & i
If Dir(strSubDir, vbDirectory) = "" Then
MkDir strSubDir
lngCnt = lngCnt + 1
End If
Next
If blnDir Then
strMsg = "Hauptverzeichnis " & strMainDir & " erstellt" & vbLf & vbLf
End If
strMsg = strMsg & "es wurden " & lngCnt & " Unterverzeichnisse erstellt"
MsgBox strMsg
End Sub

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

Betreff
Benutzer
Anzeige
AW: VBA - Verzeichnisse erstellen und manuell löschen
09.09.2010 21:01:16
andy007
Hallo Christian,
hab das Problem versucht nachzustellen, ohne Erfolg.
Ich verwende allerdings Excel 2007 / Vista.
Wenn ich das Makro mehrmals laufen lasse ohne manuell das Hauptverzeichnis zu löschen, kann ich anschliessend das Hauptverzeichnis problemlos manuell löschen.
Gruß,
Andreas
AW: VBA - Verzeichnisse erstellen und manuell löschen
09.09.2010 21:11:35
Christian
Hi Andreas,
danke für die Info.
ich hab das grade noch mal auf 'nem anderen PC laufen lassen (ebenfalls XP und Office 2003).
Gleiches Fehlverhalten.
Was ich dabei nicht verstehe ist - wenn alle Ordner schon existieren, hat das Makro ja gar nichts zu tun.
Und trotzdem blockiert es dann in irgend einer Art diese Verzeichnisse.
Frage noch offen...
Christian
Anzeige
AW: VBA - Verzeichnisse erstellen und manuell löschen
10.09.2010 07:57:26
xr8k2
Hallo Christian,
wird mit
Dir(strSubDir, vbDirectory)
ein Verzeichnis gefunden, so greift Excel scheinbar mit diesem Aufruf auf den entsprechenden Ordner zu und dieser Zugriff bleibt bestehen solange Excel geöffnet ist und kein Zugriff auf einen anderen Ordner erfolgt. Ich weiß ... komischer Versuch einer Erklärung ... nein keine Erkläerung, eher ein Tatsachenbericht weil erklären kann ich´s nicht wirklich ;-)
Schreib mal noch ein
Dir("")
nach deine For/Next-Schleife ... dies entfernt den "ExcelZeiger" auf deinen Ordner und du kanst diesen dann jederzeit wieder löschen.
Vielleicht kann jemand der sich auskennt dieses "Verhalten" mal erklären ?!
Gruß,
xr8k2
Anzeige
super - das war's
10.09.2010 09:26:59
Christian
Hi xr8k2,
genau das war's. Vielen Dank.
Gruß
Christian
AW: VBA - Verzeichnisse erstellen und manuell löschen
09.09.2010 21:09:26
strodti
Hi Christian,
leider kann ich Dir auch noch keine Lösung geben, aber ich habe es auch ausprobiert und habe das gleiche problem wie Du. Ich arbeite mit Excel 2003.
Bin aber noch am Testen.
Gruß,
Tobias

179 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige