Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1084to1088
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

Ordner Anlage mittels VBA funktioniert n teilweise

Ordner Anlage mittels VBA funktioniert n teilweise
Josef
Hallo!
Mit folgendem Code wollte ich in einem Laufwerk miteels VBA Ordner und Unerordner anlegen.
Dies klappt jedoch nur mit der Anlage des Ordners. Die Unterordner werden leider nicht angelegt.
Wo habe ich hier bitte den Fehler gemacht?

Sub Ordner_Anlage()
Dim lngI As Long
Dim dokname
Dim dokname2
Dim dokname3
Dim wks As Worksheet
Set wks = Workbooks("Import_Ersatz.xls").Worksheets("Tabelle1")
On Error GoTo WEITER
dokname = wks.Range("D2") 'Standesdifferenten_jahr
dokname2 = wks.Range("F1") 'erstes_Halbjahr_jahr
dokname3 = wks.Range("F2") 'zweites_Halbjar_jahr
' Ordner Ablage muss vorhanden sein !!!
'For lngI = 1 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
MkDir "K:\Allg_dat\TRANSFER\HST\ABT08\" & dokname
MkDir "K:\Allg_dat\TRANSFER\HST\ABT08\dokname" & "\" & dokname2
MkDir "K:\Allg_dat\TRANSFER\HST\ABT08\dokname" & "\" & dokname3
WEITER:
MsgBox "Ordner wurde bereits angelegt."
End Sub



Sub Ordner_Anlage2()
Dim lngI As Long
Dim dokname
Dim dokname2
Dim dokname3
Dim wks As Worksheet
Set wks = Workbooks("Import_Ersatz.xls").Worksheets("Tabelle1")
On Error GoTo WEITER
dokname = wks.Range("D2") 'Standesdifferenze_jahr
dokname2 = wks.Range("F1") 'erstes_Halbjahr_jahr
dokname3 = wks.Range("F2") 'zweites_Halbjar_jahr
' Ordner Ablage muss vorhanden sein !!!
MkDir "K:\Allg_dat\TRANSFER\HST\ABT08\dokname" & "\" & dokname2
MkDir "K:\Allg_dat\TRANSFER\HST\ABT08\dokname" & "\" & dokname3
WEITER:
MsgBox "Ordner wurde bereits angelegt."
End Sub


Danke
Josef

AW: Ordner Anlage mittels VBA funktioniert n teilweise
02.07.2009 14:26:53
Helmut
MkDir "K:\Allg_dat\TRANSFER\HST\ABT08\" & dokname
MkDir "K:\Allg_dat\TRANSFER\HST\ABT08\"& dokname & "\" & dokname2
MkDir "K:\Allg_dat\TRANSFER\HST\ABT08\"& dokname & "\" & dokname3
AW: Ordner Anlage mittels VBA funktioniert n teilweise
02.07.2009 14:33:16
Josef
Hallo Helmut!
Danke für Deine Antwort.
Das funktioniert jedoch nur, wenn noch keine Ordner mit diesem Namen anelegt wurden.
Existiert der Name jedoch schon, dann bricht das Makro mit einer Fehlermeldung ab.
Josef
API:MakeSureDirectoryPathExists()
02.07.2009 14:40:14
ransi
HAllo
Schau dir mal diesen ANsatz an:
Option Explicit

Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
    ByVal DirPath As String) As Long

Public Sub machs()

MakeSureDirectoryPathExists "K:\Allg_dat\TRANSFER\HST\ABT08\" & dokname & "\" & dokname3

End Sub


Die Api meckert nicht wenn es den Pfad schon gibt.
Gibt es ihn nicht wird er erstellt. Ohne das du erst das komplette Verzeichniss anlegen musst.
ransi
Anzeige
AW: API:MakeSureDirectoryPathExists()
02.07.2009 14:51:38
Josef
Hallo ransi!
Danke für Deine Antwort.
Habe jetzt folgenden Code:

Public Sub machs()
Dim dokname
Dim dokname2
Dim dokname3
Dim wks As Worksheet
Set wks = Workbooks("Import_Ersatz.xls").Worksheets("Tabelle1")
dokname = wks.Range("D2") 'Standesdifferenzen_jahr
dokname2 = wks.Range("F1") 'erstes_Halbjahr_jahr
dokname3 = wks.Range("F2") 'zweites_Halbjar_jahr
MakeSureDirectoryPathExists "K:\Allg_dat\TRANSFER\HST\ABT08\" & dokname
MakeSureDirectoryPathExists "K:\Allg_dat\TRANSFER\HST\ABT08\" & dokname & "\" & dokname2
MakeSureDirectoryPathExists "K:\Allg_dat\TRANSFER\HST\ABT08\" & dokname & "\" & dokname3
End Sub


Es wird jedoch nur der Hauptordner anfelegt, nicht die Unterordner.
Danke
Josef

Anzeige
AW: API:MakeSureDirectoryPathExists()
02.07.2009 14:59:35
Helmut
verbotene Zeichen in dokname2 oder dokname3? Z.B. ":"
AW: API:MakeSureDirectoryPathExists()
02.07.2009 15:03:07
Josef
Hallo Helmut!
Danke für Deine Antwort.
Keine verbotenen Zeichen in dokname2 oder dokname3
Der Text lautet z.B. erstes_Halbjahr_2009 in dokname2 und in dokname3: zweites_Halbjahr_2009
Josef
AW: API:MakeSureDirectoryPathExists()
02.07.2009 15:20:45
Helmut
MakeSureDirectoryPathExists "K:\Allg_dat\TRANSFER\HST\ABT08\" & dokname
MakeSureDirectoryPathExists "K:\Allg_dat\TRANSFER\HST\ABT08\" & dokname & "\" & dokname2 & "\"
MakeSureDirectoryPathExists "K:\Allg_dat\TRANSFER\HST\ABT08\" & dokname & "\" & dokname3 & "\"
AW: Ordner Anlage mittels VBA funktioniert n teilweise
02.07.2009 14:44:08
Helmut
mag sein, eine Prüfung auf Vorhandensein war aber nicht Deine Frage, aber:
sie hier: http://www.vbarchiv.net/tipps/tipp_14.html
Anzeige
AW: Ordner Anlage mittels VBA funktioniert n teilweise
02.07.2009 15:38:34
robert
hi,
ransi's code abgeändert, bei mir funkt es so
#
gruß
robert
Option Explicit
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
ByVal DirPath As String) As Long

Public Sub machs()
Dim dokname
Dim dokname2
Dim dokname3
Dim uo
Dim wks As Worksheet
Set wks = Workbooks("OrdnerUO.xls").Worksheets("Tabelle1")
dokname = wks.Range("D2") 'Standesdifferenzen_jahr
dokname2 = wks.Range("F1") 'erstes_Halbjahr_jahr
dokname3 = wks.Range("F2") 'zweites_Halbjar_jahr
MakeSureDirectoryPathExists "f:\Allg_dat\TRANSFER\HST\ABT08\" & dokname
uo = "f:\Allg_dat\TRANSFER\HST\ABT08\" & dokname & "\"
ChDir uo
MsgBox uo & dokname2
MkDir uo & "\" & dokname2
MkDir uo & "\" & dokname3
End Sub


Anzeige
AW: Ordner Anlage mittels VBA funktioniert n teilweise
02.07.2009 16:31:05
Josef
Hallo Robert!
Danke für Deine Antwort. Werde es morgen gleich in derFrüh testen und mich nochmals meldehn.
josef
AW: Ordner Anlage mittels VBA funktioniert n teilweise
03.07.2009 05:59:13
Josef
Guten Morgen Robert!
Habe jetzt getestet.
Bekomme eine Fehlermeldung bei ChDir uo
"Pfad nicht gefunden"
obwohl es diesen Pfad gibt.
Danke
Josef
MakeSureDirectoryPathExists
03.07.2009 00:07:23
Erich
Hi Josef,
probier mal das (folgt auch Ransis Vorschlag):

Sub machs2()
Dim wks        As Worksheet
Dim dokname    As String
Dim dokname2   As String
Dim dokname3   As String
Dim strVz      As String
Set wks = Workbooks("Import_Ersatz.xls").Worksheets("Tabelle1")
dokname = wks.Range("D2")     'Standesdifferenzen_jahr
dokname2 = wks.Range("F1")    'erstes_Halbjahr_jahr
dokname3 = wks.Range("F2")    'zweites_Halbjar_jahr
strVz = "K:\Allg_dat\TRANSFER\HST\ABT08\" & dokname & "\"
MakeSureDirectoryPathExists strVz & dokname2 & "\" ' Backslash am Ende!
MakeSureDirectoryPathExists strVz & dokname3 & "\"
End Sub

Ein Aufruf MakeSureDirectoryPathExists strVz ist NICHT nötig.
MakeSureDirectoryPathExists legt alle erforderlichen Ordner in einem Rutsch an.
Hier im Beispiel braucht z. B. .../ABT08 noch nicht zu existieren.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: MakeSureDirectoryPathExists
03.07.2009 06:04:34
Josef
Guten Morgen Erich!
Danke für Deine Antwort und Deinen Lösungsvorschlag. Ist perfekt.
Danke für Deine Hilfe.
Schönen Tag noch.
Josef
Danke für Rückmeldung - und neue Version
03.07.2009 07:06:02
Erich
Hi Josef,
vielleicht kannst du auch das hier gebrauchen:

Sub kurzfassung()
Dim strVz As String
With Workbooks("Import_Ersatz.xls").Worksheets("Tabelle1")
' Standesdifferenzen_jahr Range("D2")
strVz = "K:\Allg_dat\TRANSFER\HST\ABT08\" & .Cells(2, 4) & "\"
' erstes_Halbjahr_jahr  Range("F1")
MakeSureDirectoryPathExists strVz & .Cells(1, 6) & "\"
' zweites_Halbjar_jahr  Range("F2")
MakeSureDirectoryPathExists strVz & .Cells(2, 6) & "\"
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige