Anzeige
Archiv - Navigation
1472to1476
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

VBA - VBA Script: .pdf Datei Ausschneiden

VBA - VBA Script: .pdf Datei Ausschneiden
01.02.2016 15:27:53
gaja
Hallo,
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 !

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
noch offen?
07.02.2016 17:09:13
Michael
Hi Gaja,
ist die Frage noch offen?
Ich bin gern bereit, den Code etwas zu "glätten", aber es erschließt sich mir nicht genau, wo das Problem ist - Du möchtest einerseits eine PDF erzeugen, andererseits eine verschieben...
Es ist insbesondere unklar, von wo aus das Makro aufgerufen wird: Du hantierst mit "Tabelle2" und "History", bei manchen Zuweisung fehlt aber die Angabe des Blatts, was nahelegt, daß ein weiteres Blatt beteiligt ist.
Am besten wäre es, wenn Du eine anonymisierte Beispieldatei mit ein paar aussagefähigen Testdaten hochlädst.
Schöne Grüße,
Michael
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige