kaschdewasser
Lt. Junior Grade
- Registriert
- Aug. 2005
- Beiträge
- 273
Hallo zusammen,
habe folgenden Code im Internet zum automatischen Erstellen von Ordnern anhand von Informationen aus Zellen gefunden:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngLetzteZeile As Long
Dim strOrdner As String
Dim strVerzeichnis As String
Dim intspalte As Integer
Dim objFSO As Object
Dim objFO As Object
Dim objF As Object
If Not Target.Column = 1 And Not Target.Column = 9 Then Exit Sub
If Target.Count > 1 Then Exit Sub
intspalte = Target.Column
strVerzeichnis = "C:\Temp\Probe"
If intspalte = 1 Then
strOrdner = Target.Text & "_" & Target.Offset(0, 8).Text
intspalte = 8
Else
strOrdner = Target.Offset(0, -8).Text & "_" & Target.Text
intspalte = -8
End If
With ActiveSheet
lngLetzteZeile = IIf(IsEmpty(.Range("A65536")), .Range("A65536").End(xlUp).Row, 65536)
If Not Intersect(Target, Range("A1:I" & lngLetzteZeile)) Is Nothing Then
If Target.Value <> "" And Target.Offset(0, intspalte) <> "" Then
If Dir(strVerzeichnis & strOrdner, vbDirectory) <> "" Then
Select Case MsgBox("Ordner wird gelöscht und neu erstellt! Möchten Sie das?", _
vbYesNo Or vbExclamation Or vbDefaultButton1, "Ordner löschen!")
Case vbYes
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFO = objFSO.GetFolder(strVerzeichnis & strOrdner)
objFO.Delete
MkDir strVerzeichnis & strOrdner
.Hyperlinks.Add Anchor:=.Cells(Target.Row, 31), Address:=strVerzeichnis & strOrdner
.Columns(31).AutoFit
Exit Sub
Case vbNo
Exit Sub
End Select
Else
MkDir strVerzeichnis & strOrdner
.Hyperlinks.Add Anchor:=.Cells(Target.Row, 31), Address:=strVerzeichnis & strOrdner, TextToDisplay:="Dateien"
.Columns(31).AutoFit
End If
End If
End If
End With
End Sub
Funktioniert auch soweit.
Ich habe selbst keine Ahnung von VBA, deswegen jetzt folgende Frage:
Wie muss ich den Code modifizieren, damit
strVerzeichnis = "C:\Temp\Probe"
so angepasst wird:
C:\temp\ZELLENINHALT I\ZELLENINHALT B\ZELLENINHALT J\?
Dabei ist zu beachten, dass Zelleninhalt I ein Inhalt ist, der mehrfach in der Datei vorkommen wird. Die bereits vorhandenen Dokumente in dem Verzeichnis auf der Festplatte dürfen nicht gelöscht oder überschrieben werden, sondern die Unterordner "Zelleninhalt B\Zelleinhalt J\ als Unterordner angelegt.
Die Ordner sollten dazu erst erstellt werden, wenn in Zelle o etwas drinsteht.
Über Hilfe würde ich mich sehr freuen!
Besten Dank!
habe folgenden Code im Internet zum automatischen Erstellen von Ordnern anhand von Informationen aus Zellen gefunden:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngLetzteZeile As Long
Dim strOrdner As String
Dim strVerzeichnis As String
Dim intspalte As Integer
Dim objFSO As Object
Dim objFO As Object
Dim objF As Object
If Not Target.Column = 1 And Not Target.Column = 9 Then Exit Sub
If Target.Count > 1 Then Exit Sub
intspalte = Target.Column
strVerzeichnis = "C:\Temp\Probe"
If intspalte = 1 Then
strOrdner = Target.Text & "_" & Target.Offset(0, 8).Text
intspalte = 8
Else
strOrdner = Target.Offset(0, -8).Text & "_" & Target.Text
intspalte = -8
End If
With ActiveSheet
lngLetzteZeile = IIf(IsEmpty(.Range("A65536")), .Range("A65536").End(xlUp).Row, 65536)
If Not Intersect(Target, Range("A1:I" & lngLetzteZeile)) Is Nothing Then
If Target.Value <> "" And Target.Offset(0, intspalte) <> "" Then
If Dir(strVerzeichnis & strOrdner, vbDirectory) <> "" Then
Select Case MsgBox("Ordner wird gelöscht und neu erstellt! Möchten Sie das?", _
vbYesNo Or vbExclamation Or vbDefaultButton1, "Ordner löschen!")
Case vbYes
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFO = objFSO.GetFolder(strVerzeichnis & strOrdner)
objFO.Delete
MkDir strVerzeichnis & strOrdner
.Hyperlinks.Add Anchor:=.Cells(Target.Row, 31), Address:=strVerzeichnis & strOrdner
.Columns(31).AutoFit
Exit Sub
Case vbNo
Exit Sub
End Select
Else
MkDir strVerzeichnis & strOrdner
.Hyperlinks.Add Anchor:=.Cells(Target.Row, 31), Address:=strVerzeichnis & strOrdner, TextToDisplay:="Dateien"
.Columns(31).AutoFit
End If
End If
End If
End With
End Sub
Funktioniert auch soweit.
Ich habe selbst keine Ahnung von VBA, deswegen jetzt folgende Frage:
Wie muss ich den Code modifizieren, damit
strVerzeichnis = "C:\Temp\Probe"
so angepasst wird:
C:\temp\ZELLENINHALT I\ZELLENINHALT B\ZELLENINHALT J\?
Dabei ist zu beachten, dass Zelleninhalt I ein Inhalt ist, der mehrfach in der Datei vorkommen wird. Die bereits vorhandenen Dokumente in dem Verzeichnis auf der Festplatte dürfen nicht gelöscht oder überschrieben werden, sondern die Unterordner "Zelleninhalt B\Zelleinhalt J\ als Unterordner angelegt.
Die Ordner sollten dazu erst erstellt werden, wenn in Zelle o etwas drinsteht.
Über Hilfe würde ich mich sehr freuen!
Besten Dank!