VBA - VBA Script: .pdf Datei Ausschneiden
01.02.2016 15:27:53
gaja
ich hänge seit langem an dem Problem das ich für ein aktuelles Projekt eine .pdf Datei aus einem Ordner ausschneiden muss und diese in ein anderes Verzeichnis kopieren möchte. Im Netz findet man eine Menge Quellcode. Leider ist nicht das passende dabei. Das eigentliche Problem ist, dass der Dateiname der Datei die ich vorher erzeugt habe durch Felder aus Tabellen generiert wird. Ich kann also keinen statischen Namen in die Anweisung eintragen. Hier mal mein Code :
Sub Exportieren()
Dim index As Integer
index = Worksheets("Daten").Range("G4")
Rem Daten werden in die jeweilige Zelle im Datenblatt History geschrieben _
Worksheets("History").Cells(Worksheets("Tabelle2").Range("A1"), 1) = Worksheets("Tabelle2"). _
Range("F5")
Worksheets("History").Cells(Worksheets("Tabelle2").Range("A1"), 2) = Worksheets("Tabelle2"). _
Range("F6")
Worksheets("History").Cells(Worksheets("Tabelle2").Range("A1"), 3) = Worksheets("Tabelle2"). _
Range("F7")
Worksheets("History").Cells(Worksheets("Tabelle2").Range("A1"), 4) = Worksheets("Tabelle2"). _
Range("F8")
Worksheets("History").Cells(Worksheets("Tabelle2").Range("A1"), 5) = Worksheets("Tabelle2"). _
Range("D9")
Worksheets("History").Cells(Worksheets("Tabelle2").Range("A1"), 6) = Worksheets("Tabelle2"). _
Range("B10")
Worksheets("History").Cells(Worksheets("Tabelle2").Range("A1"), 7) = Worksheets("Tabelle2"). _
Range("D19")
Worksheets("History").Cells(Worksheets("Tabelle2").Range("A1"), 8) = Worksheets("Tabelle2"). _
Range("B20")
Worksheets("History").Cells(Worksheets("Tabelle2").Range("A1"), 9) = Worksheets("Tabelle2"). _
Range("D29")
Worksheets("History").Cells(Worksheets("Tabelle2").Range("A1"), 10) = Worksheets("Tabelle2"). _
Range("B30")
Worksheets("History").Cells(Worksheets("Tabelle2").Range("A1"), 11) = Worksheets("Tabelle2"). _
Range("D39")
Worksheets("History").Cells(Worksheets("Tabelle2").Range("A1"), 12) = Worksheets("Tabelle2"). _
Range("B40")
Rem Indexwert wird um 1 erhöht _
Worksheets("Tabelle2").Range("A1") = Worksheets("Tabelle2").Range("A1").Value + 1
Rem PDF Datei erzeugen
Dim pdfName As String
Dim pdfOpenAfterPublish As Boolean
Dim olApp As Object
Dim olOldBody As String
Dim sPDFPath As String
Dim sPDFDestination As String
Rem Rückfragen, ob Datei geöffnet werden soll
If MsgBox("Soll die PDF-Datei nach dem Erstellen angezeigt werden?", vbYesNo, "PDF anzeigen?") _
= vbYes Then pdfOpenAfterPublish = True
Rem Pfad und Name der PDF-Datei
sPDFPath = "C:\temp"
sPDFDestination = "C:\Desktop"
pdfName = sPDFPath & "\" & Worksheets("Tabelle2").Range("F5") & "_" & Worksheets("Tabelle2"). _
Range("F7") & ".pdf"
Dim myFSO As Object
Dim qFolder As String, tFolder As String
Dim qFile As String
'qFile = "\" & Worksheets("Tabelle2").Range("F5") & "_" & Worksheets("Tabelle2").Range("F7") & _
".pdf"
'qFolder = "C:\temp\"
'tFolder = "C:\Desktop\"
'Kill tFolder & qFile
'Set myFSO = CreateObject("Scripting.FileSystemObject")
Rem PDF-Datei erstellen.
Worksheets("Tabelle2").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=IIf(pdfOpenAfterPublish, True, False)
Rem Boolean-Variable "pdfOpenAfterPublish" zurücksetzen
pdfOpenAfterPublish = False
Rem pdf auf Netzlaufwerk schieben
'myFSO.movefile qFolder & qFile, tFolder & qFile
Rem Zellen leeren
Range("B9:H17").Select
Selection.ClearContents
Range("B19:H27").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=12
Range("B29:H37").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=9
Range("B39:H47").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-30
Range("D18:F18").Select
ActiveWindow.SmallScroll Down:=12
Range("D28:F28").Select
ActiveWindow.SmallScroll Down:=6
Range("D38:F38").Select
ActiveWindow.SmallScroll Down:=-24
Rem Excel Datei speichern
ActiveWorkbook.Save
Application.Quit
End Sub
... wie man eventuell sehen kann habe ich so gut wie keine Vorkenntnisse von der Sprache. Das Problemkind habe ich FETT markiert.Vielleicht kann mir der ein oder andere einen Lösungsvorschlag anbieten. ich wäre sehr dankbar !