Hallo zusammen,
Brauche noch etwas Hilfe von Euch Profis.
Ich fasse nochmal zusammen:
Gleiche Thema: komplexe Ordner-Strukturen anlegen
Was möchte ich tun: (es zu beschreiben fällt mir etwas schwer)
Ein Userform besteht aus mehreren Frames mit jeweils 6 Kontrollkästchen,
über diese kann man dann Textboxen aktivieren (Inhalt der jeweiligen Textbox ist ein möglicher Verzeichnisnamen)
Wenn alle Kontrollkasten angehakt sind würden unter einem Hauptverzeichnis jeweils 6 Unterverzeichnisse angelegt. Das ganze zieht sich nach unten, insgesamt jeweils nochmal 6 Unterverzeichnisse.
LW = Laufwerk (z.B. D:\)
HV = Hauptverzeichnis (Mathe)
EBENE_2_1 = Ebene 2.1 unter HV (z.B. 190411_Studienarbeit_Prof.Winkel)
EBENE_2_..........
EBENE_2_6 = Ebene 2.6 unter HV (z.B. 191231_Silvesterparty) usw.
EBENE_3_1 = Ebene 3.1 unter jeweils EBENE_2_1 bis 2_6 (z.B. 01 Checklisten, 02_Recherche, 03_Gliederung, 04_Bedingungen ……. 09_xxxxx)
Und und und das ganze bis EBENE_6_6.
Es können also in jeder Ebene 36 Unterverzeichnisse stehen.
Hier wurde mir bereits sehr geholfen, am 05.04 hatte ich einen Codeschnipsel eingestellt, der bis in Ebene 1 schön funktioniert.
Aber nun:
Der angehängte Code war nur vorab ein Versuch. Ergebnis Ebene 1 gut -- Ebene 2 gut -- Ebene 3 nur im letzten angelegtem Verzeichnis der Ebene 2.
Ich glaube hier etliche FOR Schleifen ineinander verschachteln zu müssen.
Es fehlt mir aber jeglicher Ansatz, bzw. läuft es unweigerlich auf Fehlermeldungen hinaus.
Private Sub CommandButton1_Click()
Dim arr2() As Variant
Dim arr3() As Variant
Dim arr4() As Variant
Dim objCb2 As Control
Dim objCb3 As Control
Dim objCb4 As Control
Dim i As Integer
Dim k As Integer
Dim Lw As String
Dim HV As String
Dim xTB2 As String
Dim xTB3 As String
Dim UV As String
Dim UV2 As String
Dim UV3 As String
Dim UV4 As String
Dim UV5 As String
Dim UV6 As String
Dim Dir_1 As String
Dim Dir_2 As String
Dim Dir_3 As String
Dim Dir_4 As String
Dim Dir_5 As String
Dim Dir_6 As String
Dim Fso, strV
Lw = TB_DEF_LW.Value
HV = TB_EBENE_1.Value
Dir_1 = Lw & "\" & HV
Dir_2 = Dir_1 & "\" & UV2
Dir_3 = Dir_2 & "\" & UV3
Dir_4 = Dir_3 & "\" & UV4
Dir_5 = Dir_4 & "\" & UV5
Dir_6 = Dir_5 & "\" & UV6
Set Fso = CreateObject("Scripting.FileSystemObject")
Lw = TB_DEF_LW.Value
HV = TB_EBENE_1.Value
Dir_1 = Lw & "\" & HV
Dir_2 = Dir_1 & "\" & UV2
Dir_3 = Dir_2 & "\" & UV3
Dir_4 = Dir_3 & "\" & UV4
Dir_5 = Dir_4 & "\" & UV5
Dir_6 = Dir_5 & "\" & UV6
For Each objCb2 In Me.Frame_2.Controls
If TypeName(objCb2) Like "Check*" Then
If objCb2.Value = True Then
i = i + 1
ReDim Preserve arr2(1 To i)
arr2(i) = objCb2.Name
xTB2 = "TB_EBENE_" & Right(arr2(i), Len(arr2(i)) - 2)
UV2 = Controls(xTB2).Value
Dir_2 = Dir_1 & "\" & UV2
If Fso.FolderExists(Dir_2) = False Then
MkDir Dir_2
MsgBox Dir_2 & " wurde angelegt"
Else
MsgBox Dir_2 & " vorhanden und wird benutzt"
End If
End If
End If
Next objCb2
For Each objCb3 In Me.Frame_3.Controls '### 190409-2 hinzu
If TypeName(objCb3) Like "Check*" Then
If objCb3.Value = True Then
i = i + 1
ReDim Preserve arr3(1 To i)
arr3(i) = objCb3.Name
xTB3 = "TB_EBENE_" & Right(arr3(i), Len(arr3(i)) - 2)
UV3 = Controls(xTB3).Value
Dir_3 = Dir_2 & "\" & UV3
If Fso.FolderExists(Dir_3) = False Then
MkDir Dir_3
MsgBox Dir_3 & " wurde angelegt"
Else
MsgBox Dir_3 & " vorhanden und wird benutzt"
End If
End If
End If
Next objCb3
end sub
|