Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zusammenführung von Druckroutine | Herbers Excel-Forum


Betrifft: Zusammenführung von Druckroutine von: Rainer
Geschrieben am: 18.11.2009 13:09:44

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

  

Betrifft: AW: Zusammenführung von Druckroutine von: Rainer
Geschrieben am: 19.11.2009 14:48:45

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