Mehrere Dateien kopieren, die Variable im Dateinamen haben

  • Excel

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Svenko.

    Mehrere Dateien kopieren, die Variable im Dateinamen haben

    Hallo,

    ich habe ein Makro geschrieben, welches in der Spalte A nacheinander eine Nummer speichert und diese
    Nummer zusammen mit einem gespeichertem Pfad und der Endung „.pdf“ als
    absoluten Pfad speichert. Nach diesem Prozess wird die Datei aus dem
    Quellordner in einen Zielordner gespeichert.

    Mein Problem:
    Manchmal gibt es mehrere Dateien - alles vom selbem Typ - mit derselben Nummer (z. B. 00343 und
    00343_2012 oder 00343_2012_2). Bei so einem Fall sollten alle diese Dateien in
    den Zielordner gespeichert werden. Wie müsste ich es programmieren, dass der
    Dateiname eben nur „Like“ 00343 ist?

    Hier mein bisheriger Code (Paar Sachen sind nur zum
    Test da):
    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Sub test()
    2. Dim oldFolder As String
    3. Dim newFolder As String
    4. Dim file As String
    5. Dim iRow As String
    6. iRow = 1
    7. Dim laufwerk As String
    8. Dim artNr As String
    9. Dim laenge As Integer
    10. On Error GoTo ErrHandler
    11. ' Warnhinweis
    12. If MsgBox("Bitte stellen Sie folgendes sicher:" & Chr(13) & "" & Chr(13) & "1. Alle Artikelnummern stehen in Spalte A" & Chr(13) & "2. Es befinden sich keine Leerzeilen in Spalte A", vbOKCancel + vbExclamation, "Achtung!") = vbOK Then
    13. 1:
    14. ' Auswahl des Quellordners
    15. MsgBox ("Bitte Quellordner auswählen.")
    16. With Application.FileDialog(msoFileDialogFolderPicker)
    17. If .Show = True Then
    18. MyFolder = .SelectedItems(1)
    19. Else
    20. Exit Sub
    21. End If
    22. End With
    23. oldFolder = MyFolder & "\"
    24. ' Bestätigung des Quellordners
    25. If MsgBox("Quellordner:" & Chr(13) & oldFolder, vbOKCancel, "Quellordner") = vbCancel Then
    26. GoTo 1
    27. End If
    28. 2:
    29. ' Auswahl des Zielordners
    30. MsgBox ("Bitte Zielordner auswählen.")
    31. With Application.FileDialog(msoFileDialogFolderPicker)
    32. If .Show = True Then
    33. MyFolder = .SelectedItems(1)
    34. Else
    35. Exit Sub
    36. End If
    37. End With
    38. newFolder = MyFolder & "\"
    39. ' Bestätigung des Zielordners
    40. If MsgBox("Zielordner:" & Chr(13) & newFolder, vbOKCancel, "Zielordner") = vbCancel Then
    41. GoTo 2
    42. End If
    43. '' Bearbeitung vom Problem
    44. ' Alle Zellen mit Inhalt werden markiert
    45. Selection.SpecialCells(xlCellTypeConstants).Select
    46. ' Markierte Zellen werden als Text formatiert
    47. Selection.NumberFormat = "@"
    48. Do
    49. ' Zelle A1 wird Ausgewählt
    50. Cells(iRow, 1).Select
    51. ' Aktive Artnr. speichern
    52. artNr = ActiveCell.Value
    53. ' Überprüfung der Länge der ausgewählten Artnr.
    54. laenge = Len(artNr)
    55. ' Überprüfung ob Ausgewählte Artnr. zu kurz ist, weil Nullen fehlen
    56. Select Case laenge
    57. Case Is = 1
    58. ActiveCell.Value = "0000" & artNr
    59. Case Is = 2
    60. ActiveCell.Value = "000" & artNr
    61. Case Is = 3
    62. ActiveCell.Value = "00" & artNr
    63. Case Is = 4
    64. ActiveCell.Value = "0" & artNr
    65. End Select
    66. ' Genauer Dateipfad wird erzeugt
    67. file = ActiveCell.Value & ".pdf"
    68. ' Datei wird von Quellordner in Zielordner kopiert
    69. FileCopy oldFolder & file, newFolder & file
    70. ' Zelle wird grün gefärbt
    71. ActiveCell.Interior.Color = vbGreen
    72. weiter:
    73. iRow = iRow + 1
    74. Loop Until IsEmpty(Cells(iRow, 1))
    75. Exit Sub
    76. ErrHandler:
    77. ' Zelle wird rot gefärbt, wenn Datei nicht vorhanden
    78. ActiveCell.Interior.Color = vbRed
    79. Resume weiter
    80. Exit Sub
    81. Else
    82. Exit Sub
    83. End If
    84. End Sub


    Wäre voll cool wenn es klappt, danke :D