Ein Ordner enthält 150 Unterordner . Nun will ich in jeden einen
Unterordner "2009"
erstellen, wenn bereits einige solche vorhanden sind.
Wie kann ich das per VBA lösen?
Besten Dank
Tinu Kiefer
was bedeutet "wenn bereits einige solche vorhanden sind"? Am besten
sind konkrete Beispiele, in welchem Fall ein Unterordner erstellt
werden soll und in welchem Fall eben nicht. Vielleicht kannst Du Dein
Problem mit der folgenden Prozedur schon alleine lösen:
Sub VerzeichnisErstellen()
Dim Verzeichnis As String
Dim Ordner As String
Verzeichnis = "DeinPfadMitBackslash"
Ordner = "NameNeuerOrdner"
On Error GoTo fehler1
ChDir Verzeichnis
On Error GoTo fehler2
MkDir Ordner
Exit Sub
fehler1:
MsgBox "Verzeichnis '" & Verzeichnis & "' nicht gefunden !"
Exit Sub
fehler2:
MsgBox "Der Ordner '" & Ordner & "' existiert bereits !"
Exit Sub
End Sub
Gruß, Michael
> was bedeutet "wenn bereits einige solche vorhanden sind"?
Wenn ein Unterordner mit dem Namen vorhanden ist, sollte die Prozedur
nicht abstürzen.
Kurz, es gibt nach Aufruf dieser Prozedur überall einen Unterordner
"2009"
Und das ganze mit einer Schleife oder so.
Das Verzeichnis ist C:\atest und enthält diese (z.b) Ordner
45
45489
5464446
4111
546464
5644
111
=> und in jeden muss nun ein /2009
Besten Dank
Tinu
dann sollte das so funktionieren:
Sub VerzeichnisErstellen()
Dim Verzeichnis As String
Dim Ordner As String
Dim Unterordner As String
Dim intCounter As Integer
Verzeichnis = "C:\atest\"
Ordner = Dir(Verzeichnis, vbDirectory)
Unterordner = "2009"
intCounter = 0
On Error Resume Next
Do While Len(Ordner) > 0
If Left(Ordner, 1) <> "." Then
ChDir Verzeichnis & Ordner & "\"
MkDir Unterordner
If Err.Number = 0 Then
intCounter = intCounter + 1
Else
Err.Clear
End If
End If
Ordner = Dir()
Loop
MsgBox intCounter & " Unterordner erstellt"
End Sub
Die Prozedur fügt Dir in jeden Unterordner von C:\atest einen Ordner
"2009" ein, in dem noch keiner mit diesem Namen vorhanden ist.
Gruß, Michael
Ganz herzlichen Dank für diese Prozedur. Das ist genau das was ich
brauche!
Merci!
Tinu