Hallo zusammen,
Ich würde gerne meinen Kindern beim Umgang mit Ihren Studien Unterlagen helfen.
Für mich hatte ich schon immer eine kleines Excelsheet mit Ordnernamen und zig Unterordner im Einsatz. Funktioniert auch soweit.
Jetzt habe ich meinen Mund zu voll genommen und ihnen gesagt, ich werde euch was bauen.
Ich wende seit Jahren Excel VBA an, aber eher sehr Hemdsärmelig und mit viel Unterstützung aus dem Netz.
Klassisch so: Die Ordnerbezeichnungen sind einfach mal so dahingestellt.
1. Laufwerk und Hauptverzeichnis wählen oder anlegen.
2. Ebene 2 (hier bis zu 6 Unterverzeichnisse möglich "A-E ; F-J ; K-O ; P-T ; U-Z ; Sonstige", dient zu Übersichtlichkeit der Themen)
3. Ebene 3 (hier bis zu 3 Unterverzeichnisse je UV-Ebene 2 möglich "01_Erhalten ; 02_in Arbeit ; 03_Abgegeben)
4. Ebene 4 (hier bis zu 2 Unterverzeichnisse je UV-Ebene 3 möglich "JJMMTT_Version_in Arbeit; JJMMTT_Version_Abgeschlossen)
Beschreibung:
Ich habe eine Userform, mit mehreren Frames.
dort werden Optionbuttens angewählt und damit Textfelder aktiviert, die dann als Grundlage für die Verzeichnisstruktur dienen.
hier kann das Laufwerk und das Hauptverzeichnis ausgewählt, falls noch nicht vorhanden auch angelegt werden --> funtioniert.
Private Sub CB_Ebene_1_Click()
Schalter = OB1 '##
LW = TB_DEF_LW.Value
HV = TB_EBENE_1.Value
If Schalter = True Then
sDir = LW & "\" & HV 'Hauptverzeichnis (Ebene 1) auf Laufwerk anlegen, falls nicht vorhanden
If Dir(sDir, vbDirectory) <> "" Then
MsgBox "Verzeichnis existiert schon"
CB_Ebene_1.Visible = False
Else
'MkDir sDir
MsgBox sDir & " wurde angelegt"
End If
On Error Resume Next
Else
MsgBox "ein Fehler, bitte erst Ebene 1 Hauptverzeichnis angeben"
End If
End Sub
FRAME 2 (Unterverzeichnisse Ebene 2 anlegen) -->funktioniert, gefühlt super.
Private Sub CB_EBENE_2_Click()
Dim ctrl As Control
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 EB As String
Dim xEBENE2 As String
i = 0
For Each ctrl In Me.Frame2.Controls
If TypeOf ctrl Is MSForms.CheckBox Then
LW = TB_DEF_LW.Value
HV = TB_EBENE_1.Value
OB_NAME = ctrl.Name
OB_EIGENSCHAFT = ctrl.Value
xEBENE2 = "TB_EBENE_" & Right(OB_NAME, Len(OB_NAME) - 2)
With Controls(xEBENE2)
UV2 = .Value
End With
sDir = LW & "\" & HV & "\" & UV2
i = i + Abs(ctrl.Value)
If OB_EIGENSCHAFT = True Then
Set Fso = CreateObject("Scripting.FileSystemObject")
If Fso.FolderExists(sDir) = True Then
MsgBox sDir & " existiert bereits"
On Error Resume Next
End If
On Error Resume Next
If Fso.FolderExists(sDir) = False Then
MkDir sDir
MsgBox sDir & " wurde angelegt"
End If
End If
End If
Next ctrl
End Sub
FRAME 3 (Unterverzeichnisse Ebene 3 anlegen) --> ab hier komme ich nicht weiter, bzw. ist mein Mund zu voll gewesen.
die Fehlermeldung Next ohne For bringt mich zum verzweifeln.
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
For Each ctrl_1 In Me.Frame2.Controls
If TypeOf ctrl Is MSForms.CheckBox Then
LW = TB_DEF_LW.Value
HV = TB_EBENE_1.Value
OB_NAME2 = ctrl.Name
OB_EIGENSCHAFT = ctrl.Value
For Each ctrl_2 In Me.Frame3.Controls
If TypeOf ctrl Is MSForms.CheckBox Then
LW = TB_DEF_LW.Value
HV = TB_EBENE_1.Value
OB_NAME3 = ctrl.Name
OB_EIGENSCHAFT2 = ctrl.Value
Stop
xEBENE2 = "TB_EBENE_" & Right(OB_NAME2, Len(OB_NAME2) - 2)
xEBENE3 = "TB_EBENE_" & Right(OB_NAME3, Len(OB_NAME3) - 2)
With Controls(xEBENE2)
UV2 = .Value
End With
With Controls(xEBENE3)
UV3 = .Value
End With
sDir = LW & "\" & HV & "\" & UV2 & "\" & UV3
i = i + Abs(ctrl.Value)
If OB_EIGENSCHAFT = True Then
Set Fso = CreateObject("Scripting.FileSystemObject")
If Fso.FolderExists(sDir) = True Then
MsgBox sDir & " existiert bereits"
On Error Resume Next
End If
On Error Resume Next
If Fso.FolderExists(sDir) = False Then
MkDir sDir
MsgBox sDir & " wurde angelegt"
End If
End If
End If
Next ctrl_2
Next ctrl_1
End Sub
Wie oben bereits erwähnt:
Excel VBA programiere ich Hemdsärmelig, also bin ich eher ein erfahrener Anfänger.
Ob die Ordnerstruktur so sinnvoll ist will ich nicht wissen, sie ist halt einfach so gewünscht.
Es wäre super Nett, wenn mir hier jemad helfen kann, danke
bhawener
|