Clever-Excel-Forum

Normale Version: PDF Druck per Makro
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen

Im angehängten Dokument möchte ich folgendes per Makro tun können:
Schaltfläche Pdf erstellen (alle): Erstellt ein PDF mit den weissen Bereichen aus Schreiben, Programm und Rechnung (aneinander).
Habe eine Formel, aber die Druckränder übernimmt er nicht richtig. Es soll l 0.6 r0.6 o1.2 u1.8 sein, ausserdem der Druckbereich "weisser Bereich", wie kriege ich das hin?

Schaltfläche Pdf erstellen: Eigentlich das gleiche wie oben, aber eben nur die aktuelle Seite...

Wäre sehr dankbar über Tipps/Änderungen im Dok Smile

Lg Hawkeye
Hi,

(22.12.2016, 22:39)Hawkeye schrieb: [ -> ]Im angehängten Dokument möchte ich folgendes per Makro tun können:
Schaltfläche Pdf erstellen (alle): Erstellt ein PDF mit den weissen Bereichen aus Schreiben, Programm und Rechnung (aneinander).
Habe eine Formel, aber die Druckränder übernimmt er nicht richtig. Es soll l 0.6 r0.6 o1.2 u1.8 sein, ausserdem der Druckbereich "weisser Bereich", wie kriege ich das hin?

Schaltfläche Pdf erstellen: Eigentlich das gleiche wie oben, aber eben nur die aktuelle Seite...

Teil 2:
Mit disem Makro speicherst Du den übergebenen Bereich als PDF in einem Verzeichnis ab:
Option Explicit

Sub PDF_Einzelseite()
   Dim strPfadDateiExport As String
    AWS As String
   
   'PDF freigegeben abspeichern 
   With ActiveWorkbook.ActiveSheet.Range("A3:M77")          'Bereich anpassen 
      'Definition des Datei-/Blattnamens, Pfad und Name, usw. anpassen! 
      'in E18 steht die Kundennummer 
      strPfadDateiExport = ThisWorkbook.Path & "\Freigabe\" & Format(Date, "yyyy-mm-dd") & " - " & ActiveSheet.Range("E18")
      AWS = strPfadDateiExport & " - Freigabe.pdf"
      .ExportAsFixedFormat 0, AWS
   End With
End Sub

Teil 1:
Wenn Du Dir nun ein Zusammenstellungsblatt erstellst, auf dem Du per Kamera-Funktion von allen Seiten den zu druckenden Bereich einfügst, kannst Du mit demselben Makro dann die drei Seiten auf einem Blatt oder auf drei Blätter verteilt als PDF speichern.
Danke für den Tipp Smile

Aber eigentlich würde ich gerne den Code verwenden, welchen ich schon beim Button Pdf für all Seiten erstellen habe. Er müsste mohl nur noch etwas angepasst werden, damit die Bereiche stimmen, ansonsten funktioniert er ja super.

Dein Code gibt mir "Dspan> AWS As String" einen Fehler aus. Kenne mich leider zu wenig mit VBA (eigentlich gar nicht) aus um das zu eliminieren.

Auf der Seite EV_Schreiben ist der Code mit dem Command Button verknüpft. Wenn jemand das zum laufen bringen würde und direkt ändern könnte wäre das super Smile
Also Einzelspeichern von PDF und alle zusammen...
Hallo zusammen

Also ich habe nochmals viel daran gearbeitet, jetzt fehlt nur noch das Druckmakro.
Nochmals zu Erläuterung:

Pdf erstellen (alle):
Erstellt ein PDF mit dem weissen Bereich aus: EV_Schreiben, EV_Programm; EV_Rechnung

Pdf erstellen:
Erstellt ein PDF der aktuellen Seite (auch weisser Bereich)

Wichtig:
Z.T. werden Spalten ausgeblendet, dadurch wird der weisse Bereich weniger hoch. Er sollte aber immer oben auf der Seite sein (Logo oben). Eine allfällig eingefügte Fusszeile sollte aber dann zuunterst sein.

Im Anhang das neue Dokument. Wäre sehr dankbar wenn das jemand anpassen könnte, komme nicht weiter...

Vielen Dank im Voraus Smile
(24.12.2016, 17:41)Hawkeye schrieb: [ -> ]Dein Code gibt mir "Dspan> AWS As String" einen Fehler aus. Kenne mich leider zu wenig mit VBA (eigentlich gar nicht) aus um das zu eliminieren.

das Dspan> ist fehlerhaft reingekommen, weiß nicht, warum.
Also löschen. Habe es oben korrigiert.
Hallo Rabe

Vielen Dank, aber ich kriege es nicht zum laufen. Kannst DU den Code eventuell in die Excel Datei beim richtigen Command Button einfügen?
Wie ich das für alle drei Seiten machen muss (Kamera funktion???) ist mir auch schleierhaft Wink

Gruss Hawkeye
Min!
Du solltest zunächst die weißen Bereiche jeweils manuell als Druckbereich festlegen:
markieren, Seitenlayout, Druckbereich, festlegen

Dann kopierst Du das Sheet-Array in eine neue Mappe, die Du als PDF exportierst.
Ich schreibe gleich mal ein Beispielmakro für letzteres.

Gruß Ralf
Zusätzlich die jeweiligen Seiten manuell auf Darstellung auf einer Seite skalieren, dann:
Sub RPP()
Worksheets(Array("EV_Schreiben", "EV_Programm", "EV_Rechnung")).Copy
With ActiveWorkbook
   .ExportAsFixedFormat _
      xlTypePDF, Environ("UserProfile") & "\Desktop\MeinePDF", OpenAfterPublish:=True
   .Close False
End With
End Sub

Speichert "MeinePdf.Pdf" auf Deinem Dektop und öffnet Dein PDF-Programm mit der Datei.
Willst Du letzteres nicht dann lasse , OpenAfterPublish:=True weg.

Gruß Ralf