VBA PDF-Merging bei variabler Blatt-Anzahl


#1

Hallo zusammen, habe mich angemeldet da ich den ganzen Tag schon an meinem Problem Sitze und zu keiner Lösung komme.

Ich weiß es gibt schon zahlreiche Ähnliche Beiträge zu meinem Problem, allerdings Hilft mir kein Post wirklich weiter. Mischung aus Meiner Unfähigkeit und Abweichung zu meinem Fall....

Zum Problem:
Ich versuche Catia Zeichnungen als PDFs abzuspeichern, leider dreht PDFforge die Zeichnungen automatisch hochkant, weshalb dies keine Lösung für mich ist. Zeichnungen sind im Format A0+3 etc.
Das Speichern als PDF ist nicht möglich da ich dann einzelne Blätter nicht ausschließen kann...
Daher mein Umweg über VBA.

Anbei mein Code den ich bisher habe, eigentlich fehlt "nurnoch" das merging..." -> Vorsicht, das folgende ist nicht gerade schön!:

Public MyPath As String
Public MyFile As File
Public MyDocument As DrawingDocument
Public MaxSeite As Integer
Public Seiten As Integer
Public MySheet As DrawingSheet
Public FileName As String

Sub CATMain()
        ' Popup-Alerts Deaktivieren
        CATIA.DisplayFileAlerts = False
        
        'Pfad erstellen und säubern
        MyPath = CATIA.ActiveDocument.Path
        If Right(MyPath, 1) = "" Then
                MyPath = Left(MyPath, Len(MyPath) - 1)
        End If
        MyPath = MyPath + "\"
        
        'Name erstellen und säubern
        Set MyDocument = CATIA.ActiveDocument
        FileName = MyDocument.Name
        FileName = Left(FileName, Len(FileName) - 11)
        Call CountSheets
        Call CreatePDF
End Sub

Sub CountSheets()
        'Zählen der Zeichnungsblätter für späteren nutzen
        k = MyDocument.Sheets.Count
        For Each MySheet In MyDocument.Sheets
        If MySheet.IsDetail Then
                MaxSeite = MaxSeite - 1
        End If
        Next
End Sub

Sub CreatePDF()
    Dim PDFCreatorQueue As Variant
    Dim printJob As Variant
    
        Seite = 1
        If MaxSeite = 1 Then GoTo Einseitig Else
                For Each MySheet In MyDocument.Sheets
                        If MySheet.IsDetail Then GoTo DetailEnde Else
                                MySheet.Activate
                                        'Speichern der Seiten als PDF
                                        MyDocument.ExportData (MyPath & "" & FileName & "_" & "Sheet_" & j & ".pdf"), "pdf"
                Seite = Seite + 1
DetailEnde:
            Next
Exit Sub

Einseitig:
           MyDocument.Sheets.Item(1).Activate
           MyDocument.ExportData (MyPath & FileName & ".pdf"), "pdf"
End Sub

Hoffe mir kann jemand weiter helfen.

Grüße

Sno_0ze