PDF´s per VBA-Code zusammenfassen

Hallo zusammen,

ich habe da ein Problem mit zusammenfassen von PDF´s; Ich habe hier 6 Exceldateien, die jeden Morgen erstellt werden (werden automatisiert von unserer Datenbank erstellt) und danach in PDF´s umgewandelt werden, um danach an die User verteilt zu werden. Im Moment muss das noch alles von Hand erledigt werden, aber warum soll das manuell gemacht werden wenn man es automatisieren kann?

In VBA habe ich Code erstellt, der die Dateien der Reihe nach öffnet und an den PDF-Creator leitet. Die Dateien tauchen auch alle in der Warteschlange auf, aber ich bekomme es nicht hin die per Code zusammenzufassen und auszudrucken.

Theoretisch müsste das doch mit

With pdfjob
        .cCombineAll
        .cPrinterStop = False
    End With

zu erreichen sein, oder? Es gibt nicht mal eine Fehlermeldung, der Code wird abgearbeitet aber es passiert nichts. Hat jemand einen Tip für mich?

Danke schon mal für eure Zeit.

Hab´s  selber gelöst bekommen - Mod das Thema bitte als erledigt markieren.

Hallo Sieben,

wär doch schön, nicht nur das Problem, sondern auch die Lösung zu präsentieren?!

Gruss

Alfred

Hallo,

das ist leider ein Problem - ich habe den exakt gleichen Programmcode verwendet wie vorher (ich hatte den in eine Textdatei geschoben) und später in ein neues Projekt hineinkopiert und dann hat es funktioniert. Das einzige was nicht funktioniert ist die verwendung von .cClose, die führt zu einem Fehler des PDFCreators ("Automatisierungsfehler").

Das ist der Programmcode (VB6-Basis). Ich habe den auf eine Beispiel - Exceldatei gekürzt, dass wäre sonst zu lang geworden (sind 10 Dateien mit je 5 bis 20 Excelsheets):

Public Sub FP_Interpretation(fp_erg)
'Der Verweis auf den PDFCreator muss unter Extras->Verweise unbedingt gesetzt sein

Dim  anfang, ende, zusatz As String
'Namen der Datei zusammenstellen
anfang = "FP_Interpretation_"
ende = Format(Now(), "yymmdd")
zusatz = ".pdf"

Dim pdfjob As PDFCreator.clsPDFCreator

    sPDFName = anfang + ende + zusatz
    sPDFPath = "\\\\cpsrv01du\\Auftragsmanagement\\(2) Öffentlich\\Berichte\\Engpassmanagement_Diverse\\FPInterpretation"


    Set pdfjob = New PDFCreator.clsPDFCreator

With pdfjob
        If .cStart("/NoProcessingAtStartup") = False Then
            MsgBox "PDFCreator kann nicht gestartet werden.", vbCritical + _
                    vbOKOnly, "PrtPDFCreator"
            Exit Sub
        End If
End With

With pdfjob
       .cOption("UseAutosave") = 1
        .cOption("UseAutosaveDirectory") = 1
        .cOption("AutosaveDirectory") = sPDFPath
        .cOption("AutosaveFilename") = sPDFName
        .cOption("AutosaveFormat") = 0    ' 0 = PDF
        .cClearCache
    End With

'### Aktuelle FP-Interpretation
    ChDir "\\\\cpsrv01du\\Auftragsmanagement\\(2) Öffentlich\\Berichte\\Engpassmanagement_Diverse\\FPInterpretation"
    
'Zuerst muss die Datenquelle geöffnet sein
Workbooks.Open FileName:= _
 "\\\\cpsrv01du\\Auftragsmanagement\\(2) Öffentlich\\Berichte\\Engpassmanagement_Diverse\\FPInterpretation\\" & fp_erg, UpdateLinks:=3

'An die PDFCreator-Warteschlange weiterreichen
ActiveWorkbook.PrintOut Copies:=1, ActivePrinter:="PDFCreator", Collate:=True
    
'Wieder schliessen
    ActiveWorkbook.Close (savechanges = False)

   
'### Drucken
    With pdfjob
        .cCombineAll
        .cPrinterStop = False
    End With

'### Warten bis der PDFCreator fertig ist, dann freigeben
    Do Until pdfjob.cCountOfPrintjobs = 0
        DoEvents
    Loop
    
    Set pdfjob = Nothing

'pdfjob.close führt zu einem Automatisierungsfehler des PDFCreators.
'Dieser muss deswegen nach dem Druck von Hand geschlossen werden.
'pdfjob.cClose
End Sub

Ist nicht besonders schön (und lässt sich bestimmt auch eleganter lösen) aber erfüllt seinen Zweck.

Wie gesagt, dass letzte verbliebende Problem ist das pdfjob.cClose.

Es hat sich allerdings eine neue Problematik aufgetan:

Die Excel-Dateien, die ich mit dem Code in PDF umwandle und zu einer PDF kombiniere werden nicht alle komplett gedruckt - wenn ich die PDF´s öffne sind zum Teil in den PDFs nur einzelne Blätter, obwohl die zu druckende Datei aus 10 Sheets besteht.

Liegt das an den Excel-Dateien oder kann/muss ich da dem PDFCreator noch zusätzliche Parameter geben?