Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Tabellenblatt an bestimmten Drucker | Herbers Excel-Forum


Betrifft: VBA Tabellenblatt an bestimmten Drucker von: Lunatic82
Geschrieben am: 26.01.2012 13:49:30

Hallo zusammen,

ich habe mal wieder ein Problem :) hab zwar schon gesucht aber noch nicht wirklich das richtige gefunden...

Ich habe eine Datei mit 3 Tabellenblättern.

In "Tabelle 1" werden Daten eingegeben aus denen dann in "Tabelle 2" und "Tabelle 3" ein Anschreiben bzw. eine Postkarte erstellt wird.
In "Tabelle 1" sollen zwei Schaltflächen sein mit denen man jeweils "Tabelle2" und "Tabelle3" direkt und ohne weitere Abfragen drucken kann.

Wobei "Tabelle2" auf dem Standard-Drucker (Netzwerkdrucker) ausgegeben werden soll (DINA4)
aber "Tabelle3" soll auf einem anderen Netzwerkdrucker (NAME: XYZ123 an ABC321) ausgegeben werden.
Der Netzwerkdrucker XYZ123 druckt nur im Postkartenformat.

Da meine VBA künste noch nicht so prickelnd sind wende ich mich wieder an EUCH :)
Vielen Dank für eure Hilfe!

Gruß Flo

  

Betrifft: AW: VBA Tabellenblatt an bestimmten Drucker von: Lunatic82
Geschrieben am: 26.01.2012 19:11:24

Hallo ich habe jetzt folgendes gefunden:

Public Sub Rückschein_Drucken()
  Dim Drucker$, I%
  On Error GoTo Resume_Drucker
  For I% = 1 To 30
    Drucker$ = "\\xyz\CanonP4000 auf Ne" & Format(I%, "00") & ":"
    Application.ActivePrinter = Drucker$
    Sheets("Rückschein").PrintOut Copies:=1, Collate:=True
    Exit For
Resume_Drucker:
    Resume NxtDrucker
NxtDrucker:
  Next I%
End Sub
Funktioniert super aber wie kann ich hier noch etwas einbauen, damit nach dieser Aktion wieder der standard drucker gewählt wird?

Der Standard drucker ist in diesem Fall der \\abc\HP4250 auf Ne??


Vielen DAnk!


  

Betrifft: AW: VBA Tabellenblatt an bestimmten Drucker von: Heiko S.
Geschrieben am: 27.01.2012 12:21:20

Moin Flo,

müßte so gehen, ungetestet.
Also alten Drucker merken, deine Schleife abarbeiten, alten Drucker wieder einsetzen.
Ist die Schleife wirklich notwendig, der Drucker sollte doch immer den gleichen Namen haben, oder wechselt der Name von 1 bis 30?!

Public Sub Rückschein_Drucken()
Dim strPostkartenDrucker As String, strStandardDrucker As String
Dim intI As Integer, intErrNumber As Integer

' Alte Einstellung sichern
strStandardDrucker = Application.ActivePrinter

For intI = 1 To 30
    strPostkartenDrucker = "\\xyz\CanonP4000 auf Ne" & Format(intI, "00") & ":"
    On Error Resume Next
    Application.ActivePrinter = strPostkartenDrucker
    intErrNumber = Err.Number
    On Error GoTo 0
    If intErrNumber = 0 Then
        Sheets("Rückschein").PrintOut Copies:=1, Collate:=True
        ' Alte Einstellung wieder herstellen
        Application.ActivePrinter = strStandardDrucker
        Exit Sub
    End If
Next intI

End Sub



Gruß Heiko


Beiträge aus den Excel-Beispielen zum Thema "VBA Tabellenblatt an bestimmten Drucker"