Moin!
Also wenn sich jemand über Code von anderen kaputt lacht, ist er selber schuld. Würde ich mir nicht zu Herzen nehmen. Erstmal führen viele Wege nach Rom und jeder hat mal angefangen. So lange wie am Ende das Ergebnis stimmt, ist das meist kein Problem. Also wenn dein Code so läuft, das macht was er soll und (das ist m.E. am wichtigsten) du verstehst, was er macht, würde ich ihn lassen. Du kannst natürlich immer was anderes dazu ausprobieren ( mal will ja auch was lernen :-) ). Könntest ja schauen, ob du den Code von Fennen (anderes Forum) mit einbauen kannst. Dazu wäre aber ggf. ein Blick auf die UF notwendig.
Habe jetzt mal deine Sub3 entwas umformatiert. Damit sollte man schneller Fehler wie fehlende end if etc. finden. Zudem habe ich teile die mehrfach vorkommen und in der Schleife (m.E.) nicht verändert werden, an den Anfang gesetzt. Bei den Variablen war ich mir nicht sicher, was du brauchst und habe da nichts weiter ergänzt. Hoffe mal :-) der Code läuft so auch durch. Bei den Kommentaren bitte mal schauen und ggf. ändern oder ergänzen.
VG
Private Sub CB_EBENE_3_Click()
Dim i As Integer
Dim Schalter As String
Dim Fso, strV
Dim Anzahl As Integer
Dim ZAEHLER As Integer
Dim max As Integer
Dim HV As String
Dim UV2 As Variant
Dim UV3 As Variant
Dim EB As String
Dim xEBENE2 As String
i = 0 '??
Set Fso = CreateObject("Scripting.FileSystemObject")
LW = TB_DEF_LW.Value
HV = TB_EBENE_1.Value
For Each ctrl_1 In Me.Frame2.Controls
If TypeOf ctrl_1 Is MSForms.CheckBox Then
OB_NAME2 = ctrl_1.Name
OB_EIGENSCHAFT = ctrl_1.Value 'überhaupt notwendig ?
For Each ctrl_2 In Me.Frame3.Controls
If TypeOf ctrl_2 Is MSForms.CheckBox Then
OB_NAME3 = ctrl_2.Name
OB_EIGENSCHAFT2 = ctrl_2.Value 'überhaupt notwendig ?
xEBENE2 = "TB_EBENE_" & Right(OB_NAME2, Len(OB_NAME2) - 2)
xEBENE3 = "TB_EBENE_" & Right(OB_NAME3, Len(OB_NAME3) - 2)
'die 2 Zuweisungen könntest du ggf. auch direkt einbauen und die 2 Zeilen sparen
UV2 = Controls(xEBENE2).Value
UV3 = Controls(xEBENE3).Value
sDir = LW & "\" & HV & "\" & UV2 & "\" & UV3
i = i + Abs(ctrl_2.Value) 'notwendig ?, wird nicht weiter verwendet
If OB_EIGENSCHAFT = True Then 'oder ob_eigenschatft2, du hast beide oben angelegt
If Fso.FolderExists(sDir) = True Then
MsgBox sDir & " existiert bereits"
Else
MkDir sDir
MsgBox sDir & " wurde angelegt"
End If
End If
End If
Next ctrl_2
End If
Next ctrl_1
End Sub
|