HERBERS Excel-Forum - das Archiv

Thema: Zusammenführung von Druckroutine | Herbers Excel-Forum

Zusammenführung von Druckroutine
Druckroutine

Hallo,
verwende folgende Druckroutine:

Sub drucken()
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Range("C1") = "ja" Then
ws.PrintOut
End If
Next ws
End Sub
Eine weitere Druckroutine wäre in vielen anderen Arbeitsblättern erforderlich:
Sub DruckMannschaftX()
If Sheets("Tabelle1").Range("D10") > 0 Then Sheets("Tabelle2").Range("D10") = "A": _
Application.Dialogs(xlDialogPrint).Show
If Sheets("Tabelle1").Range("D10") = 2 Then Sheets("Tabelle2").Range("D10") = "B": _
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
If Sheets("Tabelle1").Range("D10") = 3 Then Sheets("Tabelle2").Range("D10") = "C": _
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
usw.
Sheets("Tabelle2").Range("D10") = "?"
End Sub
Das würde ich nun gerne mit dem "drucken"-Code umgehen.
Funktioniert auch mit
Sub AlleMannschaften3()
If Sheets("Tabelle1").Range("D10") > 0 Then Sheets("Tabelle2").Range("D10") = "A": drucken
If Sheets("Tabelle1").Range("D10") = 2 Then Sheets("Tabelle2").Range("D10") = "B": drucken
If Sheets("Tabelle1").Range("D10") = 3 Then Sheets("Tabelle2").Range("D10") = "C": drucken
usw.
Sheets("Tabelle2").Range("D10") = "?"
End Sub
Mein Problem:
Wie bekomme ich es hin, dass mir beim ersten Blatt wieder der Druckdialog angezeigt wird?
Ersetze ich bei drucken "ws.PrintOut" mit Application ... :
Sub drucken()
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Range("C1") = "ja" Then
Application.Dialogs(xlDialogPrint).Show
End If
Next ws
End Sub

druckt es mir nur die aktive Seite x-mal.
Gruß Rainer

AW: Zusammenführung von Druckroutine
Druckroutine

Hallo,
habe Problem anderweitig gelöst und dem Code eine Druckerauswahl vorangestellt.
Sub DruckerAuswahl()
Dim strActP As String
strActP = Application.ActivePrinter
Select Case MsgBox("Ihr aktiver Drucker ist: " & vbLf & vbLf & strActP & vbLf & vbLf & _
"Möchten Sie die Druckaufträge mit diesem Drucker ausführen?" & vbLf & " ", _
vbInformation + vbYesNoCancel, "Drucken")
Case Is = vbCancel
Exit Sub
Case Is = vbNo
Application.Dialogs(xlDialogPrint).Show
Case Is = vbYes
'        ActiveSheet.PrintOut
Application.ActivePrinter = strActP
End Select
End Sub

Gruß Rainer