Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Microsoft Print to PDF

Microsoft Print to PDF
12.06.2019 12:44:20
Gunter
Hallo Zusammen
Seit Win 10 gibt es den PDF Creator nicht mehr. Nun habe ich folgendes VBA
Sub Dienstag()
Dim sDruckerAktuell As String
Dim Drucker$, DDrucker$
Dim lngLastRow As Long
' Dienstag Makro
' Tastenkombination: Strg+b
ExportDienstag.Show
sDruckerAktuell = Application.ActivePrinter
On Error Resume Next
Drucker = Application.ActivePrinter
For d = 0 To 20
Err = 0
ActivePrinter = "FreePDF auf Ne" & Format(d, "00") & ":"
If Err = 0 Then
DDrucker = "FreePDF auf Ne" & Format(d, "00") & ":"
Exit For
End If
Next
On Error GoTo 0
Application.ActivePrinter = DDrucker
ThisWorkbook.Sheets(2).PageSetup.PrintArea = ""
With ActiveSheet
lngLastRow = .Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
.PageSetup.PrintArea = "$A$1:$O$" & lngLastRow
End With
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"\\TPCS-BECHU-0016\Tagesplan-Regie10-11$\httpdocs\Tageskalender_Di.pdf", Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Application.ActivePrinter = sDruckerAktuell
End Sub
Das bisher klaglos funktionierte, seit Win 10 ohne den Creator, aber seinen Dienst verweigert. Leider kann man auch nicht einfach "FreePDF auf Ne" durch "Microsoft Print to PDF auf Ne" ersetzen, das wäre ja lächerlich einfach. Wie müsste denn der Code angepasst werden, damit die Funktionsfähigkeit wieder gegeben ist?
Für zweckdienliche Hinweise herzlichen Dank!
Gruss
Gunter
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ich frage mich gerade ....
12.06.2019 13:01:21
Rudi
Halllo,
... was der PDF Creator mit der ExportAsFixedFormat-Methode zu tun hat.
Wozu der Schnickschnack mit der Druckersuche?
  With ActiveSheet
lngLastRow = .Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
.PageSetup.PrintArea = "$A$1:$O$" & lngLastRow
.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"\\TPCS-BECHU-0016\Tagesplan-Regie10-11$\httpdocs\Tageskalender_Di.pdf", Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With

sollte reichen.
Gruß
Rudi
Anzeige
AW: Microsoft Print to PDF
12.06.2019 13:05:14
onur
So z.B.:
ActiveWindow.SelectedSheets.PrintOut PrintToFile:=True, PrToFileName:="D:\test.pdf", ActivePrinter:="Microsoft Print to PDF auf Ne01:", Copies:=1, Collate:=True, IgnorePrintAreas:=False

AW: Microsoft Print to PDF
12.06.2019 13:29:10
Gunter
Das scheint zu funktionieren.
Vielen Dank.
Gruss
Gunter
Anzeige
AW: Microsoft Print to PDF
12.06.2019 13:22:16
Gunter
ALso der Schnick Schnack mit der Druckersuche dient dazu, den Drucker wieder auf den vorher eingestellten Drucker nach dem Export wieder zurück zu setzen.
AW: Microsoft Print to PDF
12.06.2019 13:41:52
UweD
Hallo
ich bin da der gleichen Meinung wie Rudi....
Das sind doch 2 paar Schuhe.
- "Microsoft Print to PDF" ist die Alternative zum PDF-Creator... und kann von allen möglichen Programmen verwendet werden (auch von Excel)
- Durch die alternative Exportfunktion von Excel "ExportAsFixedFormat" wird der Drucker aber gar nicht angesprochen. (Datei, Exportieren, PDF /XPS,...)
LG UweD
Anzeige
AW: Microsoft Print to PDF
12.06.2019 14:00:48
Gunter
Also ich hatte das mit dem von onur vorgeschlagenen Code probiert, es funktioniert prinzipiell. Problem da gibt es dann aber eine Abfrage wohin die Datei gespeichert werden soll, obwohl die Pfadangabe in dem "Microsoft Print to PDF" schon mit drinsteht und gerade das will ich den Usern nicht zumuten.
Anzeige
AW: Microsoft Print to PDF
12.06.2019 14:04:22
Rudi
Wie schon gesagt: Das recht.
Sub Dienstag()
Dim lngLastRow As Long
' Dienstag Makro
' Tastenkombination: Strg+b
ExportDienstag.Show
With ActiveSheet
lngLastRow = .Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
.PageSetup.PrintArea = "$A$1:$O$" & lngLastRow
.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"\\TPCS-BECHU-0016\Tagesplan-Regie10-11$\httpdocs\Tageskalender_Di.pdf", Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With
End Sub

Gruß
Rudi
Anzeige
AW: Microsoft Print to PDF
12.06.2019 14:04:24
Rudi
Wie schon gesagt: Das recht.
Sub Dienstag()
Dim lngLastRow As Long
' Dienstag Makro
' Tastenkombination: Strg+b
ExportDienstag.Show
With ActiveSheet
lngLastRow = .Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
.PageSetup.PrintArea = "$A$1:$O$" & lngLastRow
.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"\\TPCS-BECHU-0016\Tagesplan-Regie10-11$\httpdocs\Tageskalender_Di.pdf", Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With
End Sub

Gruß
Rudi
Anzeige
AW: Microsoft Print to PDF
12.06.2019 14:41:04
Gunter
Das schaut so schon ganz prima aus. Allerdings beträgt jetzt die "Grösse" der PDF Datei nur noch ein ca. ein drittel? Mit Grösse meine ich, wenn ich mir die PDF Datei im Reader anschaue, dann muss sie gezoomt werden. Woran kann denn das liegen?
AW: Microsoft Print to PDF
12.06.2019 15:12:27
Gunter
Problem gefunden im Microsoft Printer kann man die Auflösung nicht einstellen im Gegensatz zum PDF Creator.
Anzeige
AW: Microsoft Print to PDF
12.06.2019 15:18:58
UweD
Hast du die Exportvariante mal versucht?
Händisch ginge das so...
in Excel,
- Datei
- Exportieren
- PDF/XPS..
Dort kannst du zwischen 2 Qualitäten wählen


Genau das macht der Code von Rudi, ohne die Nutzung eines Druckers
AW: Microsoft Print to PDF
12.06.2019 15:39:55
Gunter
Da das PDF auf einme 2K Monitor angezeigt wird braucht es eine Auflösung von 4000 dpi. Das konnte der PDF Creator.
Anzeige
AW: Microsoft Print to PDF
12.06.2019 15:45:13
UweD
Das beantwortet ja meine Frage nicht.
Hast du die Exportvariante mal versucht?
AW: Microsoft Print to PDF
12.06.2019 16:02:00
Gunter
Ja da kommt das gleiche raus wie beim drucken. Sonst gibt nur noch die Möglichkeit mit einer minimalen Grösse für die Onlineveröffentlichung.
AW: Microsoft Print to PDF
12.06.2019 14:05:03
onur
Da hast du beim Anpassen irgendwo einen Fehler gemacht, denn bei mir kommt KEINE Abfrage.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Microsoft Print to PDF in Excel VBA nutzen


Schritt-für-Schritt-Anleitung

Um Microsoft Print to PDF in Excel VBA zu verwenden, kannst Du folgenden Code nutzen, um ein Arbeitsblatt als PDF zu exportieren:

Sub ExportToPDF()
    Dim lngLastRow As Long
    With ActiveSheet
        lngLastRow = .Cells.Find(What:="*", After:=Range("A1"), _
            SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
        .PageSetup.PrintArea = "$A$1:$O$" & lngLastRow
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            "C:\Pfad\Zu\Deiner\Datei.pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    End With
End Sub

Achte darauf, den Dateipfad entsprechend anzupassen. Dieser Code nutzt die ExportAsFixedFormat Methode, die keine Druckersuche erfordert und direkt eine PDF-Datei erstellt.


Häufige Fehler und Lösungen

  1. Microsoft Print to PDF funktioniert nicht mehr
    Stelle sicher, dass der Drucker korrekt installiert ist. Gehe zu den Druckereinstellungen in Windows und überprüfe, ob Microsoft Print to PDF als Standarddrucker ausgewählt ist.

  2. Abfrage zur Speicherposition erscheint
    Wenn Du die Datei ohne Abfrage speichern möchtest, nutze die ExportAsFixedFormat Methode wie im obigen Beispiel. Achte darauf, dass der Dateipfad korrekt angegeben ist.

  3. PDF-Auflösung ist zu niedrig
    Die Microsoft Print to PDF Funktion bietet keine Möglichkeit, die Auflösung direkt einzustellen. Um eine höhere Qualität zu erreichen, kannst Du alternative Methoden verwenden oder die DPI-Einstellungen in der Druckersteuerung überprüfen.


Alternative Methoden

Wenn Du Probleme mit Microsoft Print to PDF hast, gibt es verschiedene Alternativen:

  • PDF-Drucker von Drittanbietern: Nutze Programme wie FreePDF oder PDFCreator, die mehr Anpassungsmöglichkeiten bieten, einschließlich der Möglichkeit, die Auflösung zu ändern.
  • Datei-Export direkt aus Excel: Du kannst auch die integrierte Exportfunktion nutzen:
    • Gehe zu Datei > Exportieren > PDF/XPS-Dokument erstellen.

Praktische Beispiele

Ein einfaches Beispiel für den Einsatz von Microsoft Print to PDF könnte so aussehen:

Sub PrintToPDF()
    ActiveWindow.SelectedSheets.PrintOut PrintToFile:=True, _
        PrToFileName:="C:\Pfad\Zu\Deiner\Datei.pdf", _
        ActivePrinter:="Microsoft Print to PDF", Copies:=1, _
        Collate:=True, IgnorePrintAreas:=False
End Sub

Dieses Beispiel zeigt, wie Du ein Arbeitsblatt drucken kannst, ohne einen physischen Drucker verwenden zu müssen.


Tipps für Profis

  • VBA-Fehlerbehandlung einbauen: Nutze On Error Resume Next und On Error GoTo 0, um Fehler im Code zu handhaben und eine reibungslose Ausführung zu gewährleisten.
  • Druckereinstellungen speichern: Wenn Du den aktiven Drucker wechselst, speichere den aktuellen Drucker und stelle ihn nach dem Export wieder her, um die Benutzererfahrung zu verbessern.
  • Qualitätseinstellungen prüfen: Bei der Verwendung von Microsoft Print to PDF ist es wichtig, die Qualitätseinstellungen in den Druckereigenschaften zu überprüfen.

FAQ: Häufige Fragen

1. Warum funktioniert mein VBA-Code nicht mit Microsoft Print to PDF?
Überprüfe, ob der Drucker korrekt installiert ist und ob der Dateipfad für die PDF-Datei gültig ist.

2. Kann ich die Auflösung beim Drucken in PDF anpassen?
Microsoft Print to PDF bietet keine Möglichkeit zur Anpassung der Auflösung. Du kannst jedoch alternative PDF-Drucker verwenden, die diese Funktion unterstützen.

3. Wie kann ich die Abfrage zur Speicherposition vermeiden?
Verwende die ExportAsFixedFormat Methode mit einem festgelegten Dateipfad, um die Abfrage zu umgehen.

4. Was kann ich tun, wenn die PDF-Datei nicht den gewünschten Inhalt hat?
Überprüfe die PrintArea-Einstellungen und stelle sicher, dass alle relevanten Zellbereiche eingeschlossen sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige