Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten Top
#3
(27.07.2015, 12: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?
Antworten 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)
Antworten Top


Gehe zu:


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