Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: PDF Datei kopieren und umbennen

PDF Datei kopieren und umbennen
08.02.2007 09:47:48
detleffranz
Hallo zusammen,
ich möchte in einem Verzeichnis PDF-Dateien kopieren, umbenennen und in ein anderes Laufwerk kopieren. Das kopieren funktioniert mit dem Befehl Copyfile s.Code:

Sub kopieren()
Dim sQuelle$, sZiel$, sDatei$
Dim iZeile As Long
sQuelle = "U:\test\"
sZiel = "D:\test\"
sDatei = "Plan1.pdf"
If Dir(sZiel & sDatei) = "" Then
FileCopy sQuelle & sDatei, sZiel & sDatei
MsgBox "Datei wurde kopiert!"
Else
MsgBox "Datei war schon vorhanden!"
End If
End Sub

Dies funkt soweit. Jetzt habe ich in meinem Excel-Sheet in Spalte A, Dateinamen
z.B. Plan1, Plan32 usw. In meinen Laufwerk sQuelle "U:\test\" habe diese Namen als PDF Dateien (z.B. Plan1.PDF). Jetzt sollte in meinem Excel-Sheet (Spalte A) nach einem idetischen Namen wie in meinem Laufwerk "U:\test\" gesucht werden und danach kopiert in Laufwerk (sZiel) und umbenannt nach dem jeweiligen Eintrag in Spalte B und C in meinem Excel-Sheet ! Hat jemand eine Idee ?
Gruß Detlef
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PDF Datei kopieren und umbennen
10.02.2007 01:28:50
fcs
Hallo Detlef,
ungetest, sollte aber etwa das umsetzen was du vorhast. Hoffe Kommentartexte sind ausreichend, damit du weiterkommst.
Gruss
Franz

Sub kopieren()
Dim sQuelle$, sZiel$, sDatei$, sDateiNeu$
Dim wks As Worksheet, rngNamen As Range, sName$, Zelle As Range
Set wks = ActiveSheet 'Tabellenblatt mit den Dateinamen
sQuelle = "U:\test\"
sZiel = "D:\test\"
'Zellbereich mit Namen in Spalte A
With wks
Set rngNamen = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
'Dateiliste aus Quellverzeichnis lesen und abarbeiten
sDatei = Dir(sQuelle & "*.pdf")
Do Until sDatei = ""
'Dateiname in Spalte A suchen
sName = Left(sDatei, Len(sDatei) - 4) 'PDF-Dateiname ohne Dateierweiterung
Set Zelle = rngNamen.Find(what:=sName, LookIn:=xlValues, lookat:=xlWhole)
If Zelle Is Nothing Then
'Datei aus Quellverzeichnis ist nicht in Splate A gelistet
Else
'Neuen Dateinamen bestimmen aus Inhalten Spalte B und C
sDateiNeu = Zelle.Offset(0, 1) & Zelle.Offset(0, 2) & ".pdf" '###ggf. anpassen!!!
'Datei Kopieren
If Dir(sZiel & sDateiNeu) = "" Then
FileCopy sQuelle & sDatei, sZiel & sDateiNeu
MsgBox "Datei " & sDatei & " wurde kopiert!"
Else
MsgBox "Datei  " & sZiel & sDateiNeu & " war schon vorhanden!"
End If
End If
Loop
End Sub

Anzeige
AW: PDF Datei kopieren und umbennen
12.02.2007 08:54:34
detleffranz
Hallo Franz,
vielen Dank für Deine Hilfe. Ich brauche jetzt doch nur die einfache Variante, das alle PDF-Dateien von (sQuelle) nach (sZiel) kopiert werden sollen und der Dateinamen bleibt gleich. Vorhandene Dateien in (sZiel) sollen aber überschrieben werden.
Hast Du noch einen Vorschlag.
Gruß Detlef
Anzeige
AW: PDF Datei kopieren und umbennen
12.02.2007 12:56:43
fcs
Hallo Detlef,
dann vereinfacht sich das Ganze zu

Sub Dateienkopieren()
Dim sQuelle$, sZiel$, sDatei$
sQuelle = "U:\test\"
sZiel = "D:\test\"
'Dateiliste aus Quellverzeichnis lesen und abarbeiten
sDatei = Dir(sQuelle & "*.pdf")
Do Until sDatei = ""
'Datei Kopieren
FileCopy sQuelle & sDatei, sZiel & sDatei
sDatei = Dir
Loop
MsgBox "Dateien wurden kopiert!"
End Sub

Gruß
Franz
Anzeige
AW: PDF Datei kopieren und umbennen
12.02.2007 15:10:32
detleffranz
Besten Dank.
funkt.
Gruß Detlef

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

PDF-Dateien kopieren und umbenennen in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um PDF-Dateien mithilfe von Excel VBA zu kopieren und umzubenennen, kannst Du die folgenden Schritte befolgen:

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.
  2. Fülle die Spalten A, B und C mit den entsprechenden Dateinamen. In Spalte A sollten die ursprünglichen Namen der PDF-Dateien stehen, in Spalte B und C die neuen Namen für die Umbenennung.
  3. Öffne den VBA-Editor (Alt + F11) und füge ein neues Modul hinzu.
  4. Kopiere den folgenden VBA-Code in das Modul:
Sub Dateienkopieren()
    Dim sQuelle As String, sZiel As String, sDatei As String
    sQuelle = "U:\test\"
    sZiel = "D:\test\"
    'Dateiliste aus Quellverzeichnis lesen und abarbeiten
    sDatei = Dir(sQuelle & "*.pdf")
    Do Until sDatei = ""
        'Datei Kopieren
        FileCopy sQuelle & sDatei, sZiel & sDatei
        sDatei = Dir
    Loop
    MsgBox "Dateien wurden kopiert!"
End Sub
  1. Passe die Quell- und Zielpfade (sQuelle und sZiel) an Deine eigenen Verzeichnisse an.
  2. Führe das Makro aus, um die PDF-Dateien zu kopieren.

Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Überprüfe den Pfad in sQuelle. Stelle sicher, dass der Pfad korrekt und die PDF-Dateien vorhanden sind.
  • Fehler: "Datei bereits vorhanden"

    • Wenn Du bestehende Dateien überschreiben möchtest, passe den Code an, um die Dateien ohne Überprüfung zu kopieren.
  • Fehler bei Dateinamen

    • Achte darauf, dass die Dateinamen in Spalte A korrekt eingegeben sind und dass sie keine Leerzeichen oder ungültige Zeichen enthalten.

Alternative Methoden

Neben der Verwendung von VBA gibt es auch andere Möglichkeiten, PDF-Dateien zu kopieren und umzubenennen:

  • Manuelles Kopieren: Du kannst die Dateien einfach im Windows Explorer kopieren und die Namen dort ändern.
  • PowerShell-Skripte: Für fortgeschrittene Benutzer kann ein PowerShell-Skript erstellt werden, um Dateien zu kopieren und zu umbenennen.
  • Drittanbieter-Software: Es gibt Software-Tools, die speziell für das Kopieren und Umbenennen von Dateien entwickelt wurden.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du PDF-Dateien mit VBA kopieren und umbenennen kannst:

  1. Einfaches Kopieren ohne Umbenennung:

    Sub EinfachesKopieren()
        Dim sQuelle As String, sZiel As String
        sQuelle = "U:\test\"
        sZiel = "D:\test\"
        FileCopy sQuelle & "Plan1.pdf", sZiel & "Plan1.pdf"
    End Sub
  2. Kopieren und Umbenennen basierend auf Excel-Daten:

    Sub KopierenUndUmbenennen()
        Dim sQuelle As String, sZiel As String, sDatei As String, sNeuerName As String
        sQuelle = "U:\test\"
        sZiel = "D:\test\"
        sDatei = "Plan1.pdf"
        sNeuerName = "NeuerPlan.pdf"
        FileCopy sQuelle & sDatei, sZiel & sNeuerName
    End Sub

Tipps für Profis

  • Fehlerbehandlung einbauen: Verwende On Error Resume Next, um Fehler abzufangen und entsprechend zu reagieren.
  • Batch-Verarbeitung: Wenn Du viele Dateien kopieren musst, überlege, eine Schleife zu verwenden, um den Prozess zu automatisieren.
  • Logging: Führe ein Protokoll über die kopierten Dateien, um spätere Überprüfungen zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich eine PDF-Datei kopieren? Du kannst den VBA-Befehl FileCopy verwenden, um eine PDF-Datei von einem Ort zu einem anderen zu kopieren.

2. Ist es möglich, aus einer PDF-Datei in Excel zu kopieren? Ja, es gibt verschiedene Methoden, um Inhalte aus PDF-Dateien in Excel zu importieren, z.B. durch PDF-zu-Excel-Konverter oder durch die Verwendung von VBA zur Automatisierung des Prozesses.

3. Kann ich mehrere PDF-Dateien gleichzeitig kopieren? Ja, Du kannst eine Schleife verwenden, um mehrere PDF-Dateien in einem Durchgang zu kopieren, wie im oben beschriebenen Code gezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige