Hallo

Wie kann ich mit Hilfe von Makros (bzw. mit welchem Programmcode) eine Excel-Tabelle in ein PDF umwandeln?
Mir ist zwar klar, wie die Makro-Aufzeichnung funktioniert.
Aber ich möchte nicht jedesmal auswählen, welchen Drucker oder welchen Namen die neue Datei erhalten soll.

Es soll so funktionieren, dass durch einen einzigen Klick auf den Button, den ich im Excel-Blatt erstellt habe, ein PDF-Dokument erstellt wird.

Wer kann mir hierzu Hilfestellung geben?
Bin dankbar für alle Antworten.
Gruß,
Flo

Excel-Vba: Makro um Xls in PDF umzuwandeln gesucht

Wie kann ich mit Hilfe von Makros (bzw. mit welchem
Programmcode) eine Excel-Tabelle in ein PDF umwandeln?
Mir ist zwar klar, wie die Makro-Aufzeichnung funktioniert.
Aber ich möchte nicht jedesmal auswählen, welchen Drucker oder
welchen Namen die neue Datei erhalten soll.
Es soll so funktionieren, dass durch einen einzigen Klick auf
den Button, den ich im Excel-Blatt erstellt habe, ein
PDF-Dokument erstellt wird.

Hi Flo Sternli :smile:
ich war so frei den Betreff fürs Archiv umzubacken.

Klar kannste einem Button ein Makro zuweisen, aber das muß ja wissen wie der Pdf-Dateiname heißen soll. Wenn er Exceldateiname.pdf lautet ist das wohl einfach, poste hier mal deinen aufgezeihcneten Code.

Mit dem Drucker habe ich nicht so ganz verstanden, muß man bei Pdfs einen Drucker mitauswählen? *nichtglaub*
Also gib bitte mehr Infos wie du dir das Ganze so vorstellst mit der Übergabe des jeweiligen Dateinamens usw.
Gruß
Reinhard

Hallo Reinhard.

Mit dem Drucker habe ich nicht so ganz verstanden, muß man bei
Pdfs einen Drucker mitauswählen? *nichtglaub*

doch doch, so wie ich das kenne, werden .pdf Dateien meist von einem speziellen Postscript-Druckertreiber erstellt, also praktisch in eine Datei ‚gedruckt‘. Der ‚Drucker‘, der da ausgewählt werden muß, ist das Programm, das das .pdf File schreibt. Das geht wohl auch noch anders, aber das ist IMO das übliche Verfahren.

Gruß, Rainer

Mit dem Drucker habe ich nicht so ganz verstanden, muß man bei
Pdfs einen Drucker mitauswählen? *nichtglaub*

doch doch, so wie ich das kenne, werden .pdf Dateien meist von
einem speziellen Postscript-Druckertreiber erstellt, also
praktisch in eine Datei ‚gedruckt‘. Der ‚Drucker‘, der da
ausgewählt werden muß, ist das Programm, das das .pdf File
schreibt. Das geht wohl auch noch anders, aber das ist IMO das
übliche Verfahren.

Hallo Rainer,
Pdfs sind mir fremd.Ich war irrigerweise auf dem blöden Holzweg man müßte beim Abspeichern der Datei gleich den Drucker mit dem es 7 Jahren später gedruckt wird jetzt schon mitangeben :smile:))
Danke für die Info und Gruß
Reinhard

Hallo Reinhard,
danke für Deine Antwort.

Wenn er
Exceldateiname.pdf lautet ist das wohl einfach, poste hier mal
deinen aufgezeihcneten Code.

JA, der Dateiname soll der gleiche sein. Also: „tabelle1+2_2_pdf.xls“ soll zu „tabelle1+2_2_pdf.pdf“ werden.

Hier ist der VBA-Code, den ich bisher aufgezeichnet habe:

Sub save_as_pdf()

’ save_as_pdf Makro
’ Makro am 08.05.2007 von Q241217 aufgezeichnet

’ Tastenkombination: Strg+p

ActiveWindow.WindowState = xlMaximized
Sheets(„Tabelle1“).Select
Application.ActivePrinter = „Ghostscript PDF Writer 2.0 auf RPT1:“
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
„Ghostscript PDF Writer 2.0 auf RPT1:“, Collate:=True
End Sub

Diesen Code habe ich einem Command-Button zugeordnet, so dass das aufgezeichnete Makro nach dem Anklicken ausgeführt wird.
Jetzt geht das aber nicht vollautomatisch, sondern es öffnet sich jedes Mal ein Dialogfenster, in dem gefragt wird, wo und unter welchem Namen ich die Datei speichern möchte ([Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Rainer,

Hier ist der VBA-Code, den ich bisher aufgezeichnet habe:

Sub save_as_pdf()

’ save_as_pdf Makro
’ Makro am 08.05.2007 von Q241217 aufgezeichnet

’ Tastenkombination: Strg+p

ActiveWindow.WindowState = xlMaximized
Sheets(„Tabelle1“).Select
Application.ActivePrinter = „Ghostscript PDF Writer 2.0 auf RPT1:“
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
„Ghostscript PDF Writer 2.0 auf RPT1:“, Collate:=True
End Sub

Diesen Code habe ich einem Command-Button zugeordnet, so dass das aufgezeichnete Makro nach dem Anklicken ausgeführt wird.
Jetzt geht das aber nicht vollautomatisch, sondern es öffnet sich jedes Mal ein Dialogfenster, in dem gefragt wird, wo und unter welchem Namen ich die Datei speichern möchte ([Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Flo,

ich habe nur Reinhard zwischendurch erklärt, wie Du die .pdf Dateien schreiben willst, daß das praktisch eine Druckroutine ist. In VB6 könnte ich Dir vermutlich auch helfen.

Von VBA habe ich immer noch so gar keine Ahnung, das ist der Grund, warum ich auf Deinen Beitrag nicht geantwortet habe. Ich kann Dir nicht helfen, Reinhard wird Dir helfen können. :smile:

Gruß, Rainer

Hi flo,

JA, der Dateiname soll der gleiche sein. Also:
„tabelle1+2_2_pdf.xls“ soll zu „tabelle1+2_2_pdf.pdf“ werden.

Hier ist der VBA-Code, den ich bisher aufgezeichnet habe:
Sub save_as_pdf()
ActiveWindow.WindowState = xlMaximized
Sheets(„Tabelle1“).Select
Application.ActivePrinter = „Ghostscript PDF Writer 2.0
auf RPT1:“
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
ActivePrinter:= _
„Ghostscript PDF Writer 2.0 auf RPT1:“, Collate:=True
End Sub
Diesen Code habe ich einem Command-Button zugeordnet, so dass
das aufgezeichnete Makro nach dem Anklicken ausgeführt wird.
Jetzt geht das aber nicht vollautomatisch, sondern es öffnet
sich jedes Mal ein Dialogfenster, in dem gefragt wird, wo und
unter welchem Namen ich die Datei speichern möchte (

Hi flo,

JA, der Dateiname soll der gleiche sein. Also:
„tabelle1+2_2_pdf.xls“ soll zu „tabelle1+2_2_pdf.pdf“ werden.

Hier ist der VBA-Code, den ich bisher aufgezeichnet habe:
Sub save_as_pdf()
ActiveWindow.WindowState = xlMaximized
Sheets(„Tabelle1“).Select
Application.ActivePrinter = „Ghostscript PDF Writer 2.0
auf RPT1:“
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
ActivePrinter:= _
„Ghostscript PDF Writer 2.0 auf RPT1:“, Collate:=True
End Sub
Diesen Code habe ich einem Command-Button zugeordnet, so dass
das aufgezeichnete Makro nach dem Anklicken ausgeführt wird.
Jetzt geht das aber nicht vollautomatisch, sondern es öffnet
sich jedes Mal ein Dialogfenster, in dem gefragt wird, wo und
unter welchem Namen ich die Datei speichern möchte (