Nur einzelne Worksheets drucken

Bild

Betrifft: Nur einzelne Worksheets drucken
von: jan-und-jana
Geschrieben am: 24.02.2005 09:32:00
Hallo,
Ich habe in meinem Excel-Workbook, 15 Worksheets (13 sichtbare und 2 verborgene(Einstellungen, Druck))
Wenn das Druck-Event angeschoben wird möchte ich, egal in welchem Worksheet ich mich gerade befinde, dass das Worksheet('Druck') gedruckt wird.Dies soll automatisiert geschehen ohne das ich in dem Drucken-Dialog ein bestimmtes Tabellen-Blatt selektieren muß.
Ich bedanke mich im vorraus für die schnelle Hilfe.
Gruß
jan-und-jana

Bild

Betrifft: AW: Nur einzelne Worksheets drucken
von: Fred
Geschrieben am: 24.02.2005 09:35:57
Sheets("Druck").printout
Fred
Bild

Betrifft: AW:AW: Nur einzelne Worksheets drucken
von: jan-und-jana
Geschrieben am: 24.02.2005 09:55:33
Hallo,
vielen Dank für die schnelle Hilfe, hat super geklappt.
Die geschilderte Action ist in der Methode:
'Private Sub Workbook_BeforePrint(Cancel As Boolean)'
implementiert.
Wenn der Befehl Sheets("Druck").printout abgearbeitet wird passiert bei mir folgendes:
- das Druck-Sheet wird an den Standart-Drucker geschickt und gedruckt
- es wird der Druck-Dialog geöffnet
- nachdem ich diesen bestätige durch [ok] wird das ActiveSheet noch gedruckt
Ich möchte nun aber, dass:
- befor das Druck-Sheet gedruckt wird der Druck-Dialog geöffnet wird, so dass ich mir unter Umständen einen anderen Drucker heraus suchen könnte
- und das der Druck-Dialog für das ActiveSheet erst gar nicht erscheint
- sondern nachdem mein Druck-Sheet gedruckt wurde der oben genannte den Vorgang abbricht und zur Arbeitsmappe zurückkehrt
Vielen Dank nochmal für die Mühe,
Gruß jan-und-jana
Bild

Betrifft: AW:AW: Nur einzelne Worksheets drucken
von: Bert
Geschrieben am: 24.02.2005 10:03:58

Sub mach_Druck()
Dim ret As Variant
ret = Application.Dialogs(xlDialogPrint).Show
If ret <> False Then
Sheets("Druck").PrintOut
ActiveSheet.PrintOut
End Sub

Bert
Bild

Betrifft: AW:AW: Nur einzelne Worksheets drucken
von: Bert
Geschrieben am: 24.02.2005 10:27:35
was vergessen:

Sub mach_Druck()
Dim ret As Variant
ret = Application.Dialogs(xlDialogPrint).Show
If ret <> False Then
Sheets("Druck").PrintOut
ActiveSheet.PrintOut
End If
End Sub


Bert
Bild

Betrifft: AW:AW: Nur einzelne Worksheets drucken
von: jan-und-jana
Geschrieben am: 24.02.2005 10:34:53
Hallo,
vielen Dank auch für diese Antwort, so komme ich Stück für Stück dem Ziel immer näher.
Ich habe die obige Lösung einmal in mein Workbook eingefügt:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Dim ret As Variant
    ret = Application.Dialogs(xlDialogPrint).Show
    If ret <> False Then
    Sheets("Druck").PrintOut
    End If
End Sub

Nun passiert bei mir folgendes:
- ich schiebe das Druck-Event aus dem ActiveSheet("Einstellungen") an
- der Druck-Dialog wird geöffnet ich bestätigen ihn mit [ok]
- es wird zuerst das Sheet("Einstllungen") gedruckt und dann mein gewünschtes Sheet("Druck")
- es öffnet sich erneut der Druck-Dialog
- wenn ich diesen Abbreche passiert nichts weiter
- wenn ich diesen mit [ok] bestätige wird wieder das Sheet("Einstellungen") gedruckt
WO ich hin möchte:
- das nie das Sheet("Einstellungen") (=ActiveSheet) gedruckt wird
- sondern nur das Sheet("Druck") (inkl. des Dialogs)
Vilen dank nochmal für die schnelle Hilfe
Gruß jan-und-jana
Bild

Betrifft: AW:AW: Nur einzelne Worksheets drucken
von: Bert
Geschrieben am: 24.02.2005 10:56:12

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Dim ret As Variant
    ret = Application.Dialogs(xlDialogPrint).Show
    If ret <> False Then
    Sheets("Druck").PrintOut
    End If
Cancel = true
End Sub

Bert
Bild

Betrifft: AW:AW: Nur einzelne Worksheets drucken
von: jan-und-iana
Geschrieben am: 24.02.2005 11:50:49
Danke, Danke für die schnelle´n Antworten
Jetzt ist es fasst perfekt, ich habe folgendes geändert:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Dim ret As Variant
    Dim objWorksheetActive, objWorksheetSource As Worksheet
    
    Set objWorksheetSource = ActiveSheet
    Set objWorksheetActive = ActiveWorkbook.Worksheets("Druck")
    objWorksheetActive.Activate
    
    
    Application.EnableEvents = False
    ret = Application.Dialogs(xlDialogPrint).Show
    If ret <> False Then
'        Sheets("Druck").PrintOut
    End If
    
    Application.EnableEvents = True
    Cancel = True
    objWorksheetSource.Activate
    
    Set objWorksheetSource = Nothing
    Set objWorksheetActive = Nothing
End Sub

Weil immer das ActiveSheet mit gedruckt wurde.
Vielen Dank nochmal für die schnelle und kompotente Hilfe.
Gruß
jan-und-jana
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Nur einzelne Worksheets drucken"