(27.07.2015, 13:40)Zwergel schrieb: Hi,
dann solltest du den Code dazu hier vorstellen und deine Aufgabenstellung nochmal etwas verdeutlichen.
Code:
Sub OrdnerMitHyperlinkAnlegen()
Dim Bereich As Range: Set Bereich = ThisWorkbook.Worksheets("Sheet").Range("A2:A430")
Dim Zelle As Range
Dim Pfad As String: Pfad = ThisWorkbook.Path & "\"
Dim Ordner As String
Dim i As Integer
For Each Zelle In Bereich
Select Case Zelle.Value
Case Is = ""
'Leere Zellen überspringen
Case Else
Ordner = OrdnerSauber(Zelle.Value)
If Dir(Pfad & Ordner, vbDirectory) = "" Then
MkDir Pfad & Ordner
Zelle.Offset(0, 1).Hyperlinks.Add _
Anchor:=Zelle.Offset(0, 1), Address:=Pfad & Ordner, _
ScreenTip:="Klicken Sie um zum Ordner zu gelangen", _
TextToDisplay:=Pfad & Ordner
Else:
i = 2
Do Until Dir(Pfad & "\" & Ordner & "_" & i, vbDirectory) = ""
i = i + 1
Loop
MkDir Pfad & Ordner & "_" & i
Zelle.Offset(0, 1).Hyperlinks.Add _
Anchor:=Zelle.Offset(0, 1), Address:=Pfad & Ordner & "_" & i, _
ScreenTip:="Klicken Sie um zum Ordner zu gelangen", _
TextToDisplay:=Pfad & Ordner & "_" & i
End If
End Select
Next
End Sub
Function OrdnerSauber(Name As String) As String
'Ordnernamen um nicht-erlaubte Zeichen bereinigen, hier nur 0-9
Dim i As Integer
Dim Klar As String
For i = 1 To Len(Name)
Select Case LCase(Mid(Name, i, 1))
Case Is = "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", _
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", _
"ä", "ö", "ü", "ß", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Klar = Klar & Mid(Name, i, 1)
End Select
Next i
OrdnerSauber = Klar
End Function
Also damit wird die Range "A2:A430" alle Namen als Ordnern erstellt.
Die werden dann direkt in SPalte B per Hyperlink verlinkt.
So und in diesem Ordner, wo jetzt alle Ordner erstellt wurden liegen noch hunderte Dateien.
Jetzt sollen alle Dateien in ihre Ordner verschoben werden.
Ein Ordnername ist z.b. A200
Jede File in diesem Verzeichnis, die im Name (z.b. "LKJA200.pdf") ein A200 hat, soll nun in diesen Ordner verschoben werden.
Welchen Lösungsansatz sollte ich da am besten verfolgen?