Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1356to1360
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

pdf Datei unbenennen

pdf Datei unbenennen
08.04.2014 20:48:33
giuppy
Hallo,
ich möchte mit ein VBA Dateinamen aus ein kddateine.txt suchen und wenn die Datei in ein anderen Ordner gefunden werden soll die pdf Dateiname geändert werden.
z.B.
aus KDDateien.txt
14200388
suchfile = C:\Rechnungen\Kunden\AT
14200388_VF_RECHNUNG_29476.pdf
dann Datei so umbenennen
1_14200388.pdf
oder ist möglich die Dateien numerisch zu sortieren nach die letzten 5 Ziffern
z.B 14200388_VF_RECHNUNG_29476.pdf (29476)
Ziel ist die Dateien zu Drucken in dasselbe Reihenfolge wie in der KDDateien.txt
Wenn die Datei nicht gefunden wird soll in einer txt Datei protokolliert werden
vielen Dank
GIUPPY
https://www.herber.de/bbs/user/90046.txt
Userbild

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: pdf Datei unbenennen
09.04.2014 12:25:24
Tino
Hallo,
kannst mal diesen Code testen.
Bitte zuvor ausgiebig testen bevor du diesen Code auf die Original-Daten loslässt.
Pfad zur Textdatei und den PDF-Dateien anpassen!
In der Tabelle1 A:C wird ein ergebnis ausgegeben, evtl. Tabelle1 Code anpassen!
Sub Start()
Dim sFullPathTxT$, sPathPDF$, sDir$
Dim ArTxTInhalt
Dim ArErgebnis()
Dim n&, nn&, nnn&

'Pfad wo die Textdatei liegt 
sFullPathTxT = "C:\Ordner\PDF\kddateine.txt"
'Ordner wo die PDF Dateien liegen 
sPathPDF = "C:\Ordner\PDF\"

sPathPDF = IIf(Right$(sPathPDF, 1) = "\", sPathPDF, sPathPDF & "\")

ArTxTInhalt = LeseTextFile(sFullPathTxT)

If IsArray(ArTxTInhalt) Then
    Redim Preserve ArErgebnis(1 To Ubound(ArTxTInhalt) + 2, 1 To 3)
    nn = 1: nnn = 1
    ArErgebnis(nn, 1) = "Original Name"
    ArErgebnis(nn, 2) = "Neuer Name"
    ArErgebnis(nn, 3) = "Fehler"
    ChDrive sPathPDF
    ChDir sPathPDF
    On Error Resume Next
    For n = Lbound(ArTxTInhalt) To Ubound(ArTxTInhalt)
        sDir = Dir$(sPathPDF & ArTxTInhalt(n) & "_VF_RECHNUNG_*.pdf", vbNormal)
        If sDir <> "" Then
            nn = nn + 1
            ArErgebnis(nn, 1) = sDir
            ArErgebnis(nn, 2) = n + 1 & "_" & ArTxTInhalt(n) & ".pdf"
            Name sPathPDF & sDir As sPathPDF & ArErgebnis(nn, 2)
            If Err.Number <> 0 Or Dir(sPathPDF & n + 1 & "_" & ArTxTInhalt(n) & ".pdf", vbNormal) = "" Then
                nnn = nnn + 1
                ArErgebnis(nnn, 3) = ArTxTInhalt(n)
                ArErgebnis(nn, 1) = Empty
                ArErgebnis(nn, 2) = Empty
                nn = nn - 1
                Err.Clear
            End If
        Else
            nnn = nnn + 1
            ArErgebnis(nnn, 3) = ArTxTInhalt(n)
        End If
    Next n
    
    With Tabelle1 'Ausgabe für Info, evtl. Tabelle anpassen 
        .Columns("A:C").Delete
        With .Range("A1").Resize(Ubound(ArErgebnis), Ubound(ArErgebnis, 2))
            .NumberFormat = "@"
            .Value = ArErgebnis
            .Rows(1).Font.Bold = True
            .EntireColumn.AutoFit
        End With
    End With
End If

End Sub

Function LeseTextFile(sFilename$)
Dim F%, sInhalt$
If Dir$(sFilename, vbNormal) <> "" Then
   F = FreeFile
   Open sFilename For Binary As #F
   sInhalt = Space$(LOF(F))
   Get #F, , sInhalt
   Close
   LeseTextFile = Split(sInhalt, vbCrLf)
Else
    MsgBox "Text Datei" & vbCr & sFilename & vbCr & "nicht gefunden!"
End If
End Function
Gruß Tino

Anzeige
AW: pdf Datei unbenennen
09.04.2014 12:50:54
fcs
Hallo GIUPPY,
hier mein Vorschlag.
Gruß
Franz
Sub Number_and_Rename_PDF()
Dim varFileKdnTxt As Variant, varFileLog As Variant
Dim Zeile As Long, FF1 As Integer, FF2 As Integer
Dim strText As String, strNameOld As String, strNameNew As String, strPfad As String
Dim varDatei As Variant
strPfad = "C:\Rechnungen\Kunden\AT"  'ggf. anpassen
strPfad = "D:\Test\AT"
varFileKdnTxt = Application.GetOpenFilename(Filefilter:="txt-Datei (*.txt),*.txt", _
Title:="Bitte Dateiliste des Kunden auswählen")
If varFileKdnTxt  False Then
'Name Logdatei auf Basis Kundendatei festlegen
varFileLog = varFileKdnTxt
varFileLog = Left(varFileLog, InStrRev(varFileLog, ".") - 1)
varFileLog = varFileLog & "_Log" & Format(Now, "YYYYMMDD hhmmss") & ".txt"
'Quelldatei öffen
FF1 = FreeFile()
Open varFileKdnTxt For Input As #FF1
'Log-Datei anlegen
FF2 = FreeFile()
Open varFileLog For Output As #FF2
Zeile = 0
Do Until EOF(FF1)
Line Input #FF1, strText
strNameOld = Dir(Pathname:=strPfad & "\" & strText & "*.pdf")
If strNameOld = "" Then
Print #FF2, strText & "|xxx|nicht gefunden"
Else
Zeile = Zeile + 1
strNameNew = Format(Zeile, "000_") & strText & ".pdf"
Name strPfad & "\" & strNameOld As strPfad & "\" & strNameNew
Print #FF2, strText & "|" & Format(Zeile, "000") & "|umbenannt"
End If
Loop
Close FF1
Close FF2
End If
End Sub

Anzeige
AW: pdf Datei unbenennen
11.04.2014 19:48:59
giuppy
Hallo Franz,
vielen Dank
noch eine Frage
nachdem die Dateien umbenannten haben möchte ich alle ausdrucken (nach die Reihenfolge 001_142.,002_142..,003_142.. usw.).
Bis Jetzt habe ich die Dateien verschieben nach den Programm PDF24 und von dort ausgedruckt.
Kann man direkt diesen Dateien nach den Programm PDF24 mit einem VBA zu verschieben?
Oder wie kann ich diese Dateien in der gewünschte Reihenfolge Drucken.
PS es können auch 600 Dateien vorhanden sein
Viele Grüße
GIUPPY

AW: pdf Datei unbenennen
13.04.2014 14:31:15
giuppy
Hallo Franz,
vielen Dank
noch eine Frage
nachdem die Dateien umbenannten haben möchte ich alle ausdrucken (nach die Reihenfolge 001_142.,002_142..,003_142.. usw.).
Bis Jetzt habe ich die Dateien verschieben nach den Programm PDF24 und von dort ausgedruckt.
Kann man direkt diesen Dateien nach den Programm PDF24 mit einem VBA zu verschieben?
Oder wie kann ich diese Dateien in der gewünschte Reihenfolge Drucken.
PS es können auch 600 Dateien vorhanden sein
Viele Grüße
GIUPPY

Anzeige
AW: pdf Datei unbenennen
14.04.2014 10:31:21
fcs
Hallo GIUPPY,
bezuglich Drucken der PDF-Dateien in vorgegebener Reihenfolge via VBA-ANweisungen kann ich dir leider nicht weiterhelfen.
Bei bis zu 600 Dateien einen Batch-Druck zu starten schein mir doch etwas problematisch.
Gruß
Franz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige