Hallo zusammen,
folgender Code funktioniert im Prinzip und tut, was er soll:
Private Sub drucken_Click()
NameTemplateHelp = "Vorschlag für Dateiname (mit STRG-C in die Zwischenablage kopieren und im nächsten Dialogfeld als Dateiname mit STRG-V einfügen)"
Auswahl = Selection.Row
If Selection.Count > 1 Then
MsgBox "Bitte nur einen Belege markieren!"
ElseIf Selection.Column > 1 Then
MsgBox "Bitte nur auf Belegnummer (Doppel)klicken!"
ElseIf Cells(Auswahl, Selection.Column) = "" Then
MsgBox "Gewählte Zelle ist leer!"
ElseIf Auswahl 4 Then
MsgBox "Gewählte Zeile gehört zur Überschrift!"
ElseIf Liste.Range("A" & Auswahl) = 9999 Then
MsgBox "Beleg Nr. 9999 kann nicht gedruckt werden (das ist ein Platzhalter bzw. Beispiel)"
ElseIf Liste.Range("A" & Auswahl) = 0 Then
MsgBox "ein Beleg mit der Nummer 0 kann nicht gedruckt werden"
Else
PrintMsg = Liste.Range("A" & Auswahl)
Bankbeleg.Range("C6") = Liste.Range("A" & Auswahl)
NameTemplate = "BB " & Format(Liste.Range("A" & Auswahl), "000 ") & Liste.Range("B" & Auswahl)
Abbruch = MsgBox("Es wird Beleg " & PrintMsg & " gedruckt!", vbOKCancel)
If Abbruch = vbOK Then
Dummy = InputBox(NameTemplateHelp, "Kopiervorlage", NameTemplate)
Application.DisplayAlerts = False
Bankbeleg.PrintOut Copies:=1, ActivePrinter:="Foxit PhantomPDF Printer", PrintToFile:=True, PrToFileName:="C:\Temp\test.pdf"
Liste.Activate
Application.DisplayAlerts = True
End If
End If
Liste.Range(Selection.Address).Select
End Sub
Meine Frage betrifft folgende Zeile:
Bankbeleg.PrintOut Copies:=1, ActivePrinter:="Foxit PhantomPDF Printer", PrintToFile:=True, PrToFileName:="C:\Temp\test.pdf"
Wie kann/muss ich das umschreiben (wenn es denn überhaupt geht), dass hier nicht der auf meinem Rechner installierte Drucker verwendet wird, sondern dass das bei jedem mit dem Standard-Windows-Drucker funktioniert?
Eine Zusatzfrage wäre noch: wenn ich die Pfad- und Namensangabe "... test.pdf" weglasse, funktioniert es nicht, MIT der Angabe kommt einfach nur der Dialog des Druckertreibers. Ließe sich das so "gestalten", dass hier gleich in die entsprechende pdf gedruckt wird oder ist das vom Treiber abhängig oder hab ich hier einen generellen Denk-Fehler? Die Beantwortung hierzu wäre aber eher zweitrangig, solange der Rest funktioniert.
Danke und Gruß
David