PDF Erstellung bestimmter Tabellenblätter per Makro
#1
Hallo zusammen,

ich habe eine Excel Datei mit vielen Tabellenblättern. Bisher hatte ich verschiedene Button mit Makros belegt. Diese haben bestimmte Blätter angewählt und den Druckdialog mit ausgewähltem PDF Creator geöffnet um aus diesen eine PDF zu erzeugen.

Hier mein bisheriges Makro:
Code:
Sub pdfDruck()
Application.ActivePrinter = "PDFCreator auf Ne00:"
Dim SelectedSheets As Variant
SelectedSheets = Array("Tabellenblatt01", "Tabellenblatt02")
Sheets(SelectedSheets).Select
Application.Dialogs(xlDialogPrint).Show
Sheets("Einstellungen").Select   //Hierdurch wird wieder das Tabellenblatt angewählt auf welchem ich die Button liegen habe.
End Sub


Nun hab ich nach einer Möglichkeit gesucht, dass die PDF ohne den Druckdialog in dem Verzeichnis der Excel Datei erstellt wird. Den Speichernamen soll sich das Makro dabei aus zwei Zellen des jeweils ersten Tabellenblattes ziehen.

Beim recherchieren habe ich folgendes Makro gefunden:

Code:
Sub pdfDruck()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & Range("B7").Value & " - " & Range("O4") & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub
mit diesem bekomme ich aus dem aktuell gewähltem Blatt eine PDF inkl. korrekter Namensgebung.
Das ganze soll nun jedoch wie in meinem alten Makro mit mehreren Tabellenblättern funktionieren und genau dazu bräuchte ich eure Hilfe :)

LG
Chris
Top
#2
Hallöchen,

das sollte im Prinzip auch wie im ersten Makro funktionieren. Hier mal der betreffende Auszug aus dem Code. Das Selektieren und Aktivieren ist hier etwas anders als in Deinem Code.
Code:
...
    Sheets(Array("Tabelle2", "Tabelle1")).Select
    Sheets("Tabelle1").Activate
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • chrisExcel
Top
#3
vielen Dank soweit!

Eine Sache läuft jedoch leider noch nicht ganz Perfekt. Die Reihenfolge der Seiten in der PDF ergeben sich aktuell aus der Reihenfolge, wie die Tabellenblätter in der Excel angelegt sind und nicht aus der Reihenfolge wie ich sie im Makro angebe.

Code:
Sheets(Array("Blatt1", "Blatt2", "Blatt3", "Blatt4")).Select
Wenn in der Excel Datei also "Blatt4" ganz vorne ist, wird es auch in der PDF die erste Seite und nicht wie im Makro die letzte.

Das gesamte Makro sieht aktuell jetzt so aus:
Code:
Sub Druck()

Sheets(Array("Blatt1", "Blatt2", "Blatt3", "Blatt4")).Select
Sheets("Blatt1").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & Range("E1").Value & " - " & Range("P4").Value & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False

End Sub


LG,
Chris
Top
#4
Hallo Chris,
Ja, das ist leider so. Kannst Du die Blätter in der Druckreihenfolge anordnen? Ansonsten müsste man schauen, ob man den pdfcreator programmiert. Welche Version hast Du denn?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#5
Ich habe jetzt gerade noch mal über die Datei drüber geschaut. Das Problem lässt sich hier durch ein klein wenig ändern der Reihenfolge der Blätter umgehen.
Den pdfcreator zu programmieren ist somit nicht nötig und würde wahrscheinlich auch zu Problemen führen, wenn Kollegen mit einer anderen Version des creators das Makro ausführen wollen.

Vielen Dank für die Hilfe!


LG,
Chris
Top
#6
Hallo Chris,

da bin ich aber froh, dass Du umstellen kannst Smile

Beim pdfcreator ist es wirklich kompliziert. Das ging mal ungefähr von 0.96 bis ca. 1.7.3 zu programmieren, dann ging einige Versionen im Prinzip so gut wie nix, und ich glaube so etwa ab der 2.2.x ging es wieder, aber anders als zuvor...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste