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

Bei PDF druck Microsoft Print to PDF nut

Forumthread: Bei PDF druck Microsoft Print to PDF nut

Bei PDF druck Microsoft Print to PDF nut
05.03.2021 21:18:14
Tobi
Hallo,
ich drucke mit der Stelle den Inhalt des Blattes "wksAusdruck" als PDF
Nur leider wird immer der letzt verwendete Durcker verwendet.
Da wir einen Paketlable Ducker haben wird daher oft das Pakt Label als Format verwendet.
Wir kann ich es machen dass der Drucker "Microsoft Print to PDF" für den Druck der PDFs verwendet wird?
                With wksAusdruck
.ExportAsFixedFormat Type:=xlTypePDF, From:=1, To:=1, _
Filename:=PDF_Speicher, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With
Liebe Grüße

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei PDF druck Microsoft Print to PDF nut
05.03.2021 21:54:21
ralf_b
Also damit druckst du nichts. Du erstellst eine Pdfdatei. und das wars.

AW: Bei PDF druck Microsoft Print to PDF nut
05.03.2021 22:50:41
Tobi
Vielen Dank für die Rückmeldung.
Wie kann ich denn festlegen welcher Drucker / wie der Ausdruck aussehen soll festlegen?

AW: Bei PDF druck Microsoft Print to PDF nut
06.03.2021 11:05:56
ralf_b
den drucker könntest du für den Druck umstellen. der verwendete Drucker ist in Application.activePrinter hinterlegt.
Für einen einmaligen Vorgang würde sich anbieten den Druckerauswahldialog aufzurufen und die Rückgabe des Dialoges als Drucker zu nutzen
Application.Dialogs(xlDialogPrinterSetup).Show
du kannst den Drucker auch direkt umstellen wenn du den Namen und den Port kennst.
z.b. heißt der Drucker "Microsoft Print to PDF"
Aber richtig muß die Zuweisung sein mit Application.ActivePrinter = "Microsoft Print to PDF auf Ne03:"
Der Port kann aber bei jedem anders sein.
gib im Direktfenster des Vbaeditors ?Activeprinter ein und drücke Enter, dann solltest du den kompletten Text angezeigt bekommen.
gruß
rb

Anzeige
AW: Bei PDF druck Microsoft Print to PDF nut
08.03.2021 20:18:01
Tobi
Hallo,
vielen Dank für die Antwort.
Ja mit deinem Vorschlag funktioniert es
Ich habe es nun so dargestellt:

With wksAusdruck
.Application.ActivePrinter = "Microsoft Print to PDF auf NE05:"
.ExportAsFixedFormat Type:=xlTypePDF, From:=1, To:=1, _
Filename:=PDF_Speicher, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With
Allerdings arbeiten mehrere Rechner mit der Datei .. mein manchen heisst der Drucker
Microsoft Print to PDF auf NE05:
bei anderen wiederum
Microsoft Print to PDF auf NE02:
Hast du/ihr eine Idee wie man das abfangen kann?
LG
TObi

Anzeige
AW: Bei PDF druck Microsoft Print to PDF nut
08.03.2021 21:13:04
ralf_b
ich habe das erst diese Tage deswegen recherchiert und bin aber auf keinen super einfachen Weg gestoßen. Im Grunde läuft es darauf hinaus eine Liste mit vorhandenen Druckern durchzuarbeiten.
die Funktion gibt ein Array zurück und das kannst du auswerten.

'der aufruf der function müßte  so hinhauen
.Application.ActivePrinter = Listprinter
Public Function ListPrinter() As Variant
'by Ramses
'Speichert alle installierten Drucker im Array "arrPrinter"
Const HKEY_current_user = &H80000001
Dim oReg As Object, i As Long
Dim strKeyPath As String, strValue As String, msg As String
Dim arrPrinter As Variant, arrtmp
ReDim arrtmp(1, 1)
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv" _
)
strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Devices"
oReg.EnumValues HKEY_current_user, strKeyPath, arrPrinter
For i = 0 To UBound(arrPrinter)
oReg.GetStringValue HKEY_current_user, strKeyPath, arrPrinter(i), strValue
ReDim Preserve arrtmp(0 To 1, 0 To i)
' msg = msg & arrPrinter(i) & Replace(strValue, "winspool,", " auf ") & vbCr
if   arrPrinter(i) = "Microsoft Print to PDF" then
ListPrinter  =  arrPrinter(i) & Replace(strValue, "winspool,", " auf ")
exit for
end if
Next
Set oReg = Nothing
End Function

gruß
rb

Anzeige
"Ich drucke in ein PDF" ist so üblich. Denn ...
06.03.2021 12:52:50
lupo1
... das PDF wird wie ein Drucker behandelt (drucken, nicht PDF-erstellen).
;

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 den Drucker "Microsoft Print to PDF" in Excel VBA zu verwenden, kannst du den folgenden VBA-Code nutzen. Damit wird sichergestellt, dass der richtige Drucker verwendet wird, um eine PDF-Datei zu erstellen.

  1. Öffne den VBA-Editor: Drücke Alt + F11 in Excel.
  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deineDatei.xlsx)" und wähle Einfügen > Modul.
  3. Gib den folgenden Code ein:
Sub ExportAsPDF()
    Dim wksAusdruck As Worksheet
    Set wksAusdruck = ThisWorkbook.Worksheets("wksAusdruck")

    ' Stelle den Drucker ein
    Application.ActivePrinter = "Microsoft Print to PDF auf NE05:"

    ' Exportiere das Blatt als PDF
    With wksAusdruck
        .ExportAsFixedFormat Type:=xlTypePDF, From:=1, To:=1, _
        Filename:="C:\Pfad\zu\deiner\Datei.pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    End With
End Sub

Ersetze "C:\Pfad\zu\deiner\Datei.pdf" mit dem gewünschten Speicherort.


Häufige Fehler und Lösungen

  • Fehler: Microsoft Print to PDF funktioniert nicht

    • Stelle sicher, dass der Drucker installiert ist. Überprüfe die Druckereinstellungen in Windows.
  • Fehler: Microsoft Print to PDF nicht vorhanden

    • Überprüfe in der Systemsteuerung, ob der Drucker korrekt installiert und aktiviert ist.
  • Fehler: Anwendung verwendet den falschen Drucker

    • Stelle den Drucker in deinem VBA-Code explizit ein mit Application.ActivePrinter = "Microsoft Print to PDF auf NE05:". Achte darauf, den korrekten Port zu verwenden.

Alternative Methoden

Wenn du häufig zwischen verschiedenen Druckern wechseln musst oder der Druckername variieren kann, kannst du eine Funktion erstellen, die alle installierten Drucker auflistet und den richtigen Drucker auswählt.

Hier ist ein Beispiel für eine Funktion, die eine Liste der Drucker zurückgibt:

Public Function ListPrinter() As Variant
    Dim oReg As Object, i As Long
    Dim arrPrinter As Variant

    ' ... (Rest des Codes wie im vorherigen Abschnitt) ...

    For i = 0 To UBound(arrPrinter)
        If arrPrinter(i) = "Microsoft Print to PDF" Then
            ListPrinter = arrPrinter(i)
            Exit Function
        End If
    Next
End Function

Praktische Beispiele

Hier sind einige Beispiele, wie du "Microsoft Print to PDF" in verschiedenen Szenarien nutzen kannst:

  1. PDF mit benutzerdefiniertem Namen speichern:
Filename = "C:\Pfad\zu\deiner\Datei_" & Format(Now(), "yyyymmdd_hhnnss") & ".pdf"
  1. Druckqualität anpassen:

Um die Druckqualität zu ändern, kannst du die Quality-Option anpassen. Beispiel:

Quality:=xlQualityMinimum  ' Für eine niedrigere Qualität

Tipps für Profis

  • Drucker dynamisch ermitteln: Verwende die oben genannte ListPrinter-Funktion, um den Drucker dynamisch zu ermitteln, bevor du den Export durchführst.

  • Automatisches Speichern aktivieren: Um die PDF-Datei automatisch zu speichern, kannst du die Option OpenAfterPublish:=False weglassen, wenn du die Datei nach dem Erstellen öffnen möchtest.

  • PDF-Formate hinzufügen: In den Druckereinstellungen kannst du verschiedene Formate für den PDF-Druck hinzufügen.


FAQ: Häufige Fragen

1. Frage
Wie kann ich sicherstellen, dass immer der richtige Drucker verwendet wird?
Antwort: Verwende den VBA-Befehl Application.ActivePrinter, um den Drucker explizit festzulegen.

2. Frage
Was kann ich tun, wenn "Microsoft Print to PDF" nicht angezeigt wird?
Antwort: Stelle sicher, dass der Drucker in Windows installiert und aktiviert ist. Du kannst auch die Systemsteuerung überprüfen.

3. Frage
Kann ich die PDF-Datei in einem bestimmten Ordner speichern?
Antwort: Ja, du kannst den vollständigen Pfad in der Filename-Eigenschaft angeben, um den Speicherort der PDF-Datei festzulegen.

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