Drucker über Makro gezielt ansprechen
#1
Hallo zusammen,

da ich mit VBA nicht vertraut bin, habe ich mir bislang so ziemlich alles über den Rekorder zusammenfrickeln können  Blush

Allerdings scheitere ich hier: ich möchte gern schlicht über eine Schaltfläche den definierten Druckbereich über einen bestimmten(!) Drucker ausdrucken.
Wenn ich das über den Rekorder "aufnehme", endet das in

Sub Etikettendruck_auf_Drucker_3()
'
' Etikettendruck_auf_Drucker_3 Makro
'

'
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
End Sub

Jedoch findet der Druck trotzdem immer noch auf dem Standarddrucker statt.
Was müsste ich hinzufürgen, um bspw. "Drucker 3" gezielt anzusprechen?

Lieben Dank sagt
der Klaus
Ich arbeite mit Menschen zusammen, die Excel nicht so strukturiert und themenzentriert nutzen, wie es hier meistenteils der Fall ist. Excel wird gern auch mal nur zur einfachen Darstellung und Veranschaulichung (teilweise als regelrechter Experimentierkasten oder als "Was-passiert-dann?-Maschine") genutzt und weniger zur "echten Berechnung im professionellem Einsatz". Demzufolge sind meine Fragen auch meistens nicht so logisch und strukturiert aufgebaut wie hier im Forum größtenteils üblich und erscheinen - was ihren Inhalt angeht - manchmal recht naiv. Um so mehr ist Eure Hilfe immer willkommen, vielen Dank für Eure Unterstützung Smile
Antworten Top
#2
Hi
wenn ich mich recht erinnere, war es nicht so ganz einfach, per VBA einen bestimmten Drucker auszuwählen.
ein Workaround, der dich zumindest nicht vergessen lässt, dass du den Drucker auswählen musst, wäre vor dem Druck der Befehl:

Code:
application.Dialogs(xlDialogPrinterSetup).Show

Dieser zeigt dir vor dem Druck die Auswahl der möglichen Drucker auf deinem Rechner und du kannst einen auswählen.
Dieser ist dann als Standarddrucker einsgestellt und wird verwendet, wenn du was druckst.

Gruß Daniel
Antworten Top
#3
Hi,

gehe in Excel und auf Drucken und wähle den Wunschdrucker aus.

Mit diesen Code liest du den genauen Namen aus:


Code:
Sub drucker_name1()
Range("A1").Value = Application.ActivePrinter
End Sub


und dann baust du den genauen Namen (in mein Fall ist es "Brother DCP-L2665DW Printer auf Ne04:") in den Code hier ein:

Code:
Sub label_druck()
    Dim AltDrucker As String
    Dim NeuDrucker As String
    NeuDrucker = "Brother DCP-L2665DW Printer auf Ne04:"
    AltDrucker = ActivePrinter
    Application.ActivePrinter = NeuDrucker

         ActiveSheet.PrintOut

    Application.ActivePrinter = AltDrucker
End Sub


LG, Alexandra
Antworten Top
#4
Hallo Klaus,

vielleicht so:

Code:
Sub Etikettendruck_auf_Drucker_3()
'
' Etikettendruck_auf_Drucker_3 Makro
'

'
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False, ActivePrinter:="Drucker_3"
End Sub

Gruß, Uwe
Antworten Top
#5
Hallo zusammen,
erst mal ganz großen Dank für Eure Lösungen.
Ich teste das auf jeden Fall mal aus!
Einstweilen allen einen schönen Tag
Klaus
Ich arbeite mit Menschen zusammen, die Excel nicht so strukturiert und themenzentriert nutzen, wie es hier meistenteils der Fall ist. Excel wird gern auch mal nur zur einfachen Darstellung und Veranschaulichung (teilweise als regelrechter Experimentierkasten oder als "Was-passiert-dann?-Maschine") genutzt und weniger zur "echten Berechnung im professionellem Einsatz". Demzufolge sind meine Fragen auch meistens nicht so logisch und strukturiert aufgebaut wie hier im Forum größtenteils üblich und erscheinen - was ihren Inhalt angeht - manchmal recht naiv. Um so mehr ist Eure Hilfe immer willkommen, vielen Dank für Eure Unterstützung Smile
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste