Hinkopieren von Files in Ordner
#1
Hallo, ich habe eine Frage:
 
 
Ich kann mit einem VBA Code zu Einträgen einer Spalte einen Ordner mit dem Namen erstellen.
In dem gleichen Ordner wo jetzt ganz viele Ordner mit den aus der Spalte kopierten Ordnernamen sind, liegen noch PDF´s und Excel Files.
 
Da hat mindestens eine dem gleichen Name wie ein Ordner im Verzeichnis…Wie bekomme ich die jetzt „automatisiert“ da hineinkopiert?
 
 
 
Hui hui das is sicher schwer… Huh
Top
#2
Zitat:Ich kann mit einem VBA Code zu Einträgen einer Spalte einen Ordner mit dem Namen erstellen.

Hi,

dann solltest du den Code dazu hier vorstellen und deine Aufgabenstellung nochmal etwas verdeutlichen.
Mit freundlichen Grüßen  :)
Michael
Top
#3
(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?
Top
#4
Hallöchen,

ein Ansatz wäre das:

Code:
Sub Schiebung()
'Variablendeklarationen
'String
Dim strPath$, strFile
strPath = "D:\Test\"
'Alle Dateien mit A200 vor .pdf
strFile = Dir(strPath & "*A200.pdf")
'Schleife, solange Dir etwas findet
Do While strFile <> ""
  'Verschieben mittels Name
  Name strPath & strFile As strPath & "A200\" & strFile
  'naechste Date finden
  strFile = Dir()
'Ende Schleife, solange Dir etwas findet
Loop
End Sub

Jetzt wäre nur die Frage, ob das immer die Zeichen vor dem "." betrifft und ob die Angaben eindeutig sind.
Die Schleife mit den verschiedenen Namensteilen könnte man dann wieder über die Einträge der Exceldatei legen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste