Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: blätter drucken bei bedingung

blätter drucken bei bedingung
Michael
Um ausschließlich versteckte Blätter zu drucken, die eine Bedingung erfüllen, habe ich _
folgenden Code:

Private Sub CommandButton100_Click()
Dim wks As Worksheet
Application.ScreenUpdating = False
For Each wks In Worksheets
If Not wks.Visible And wks.Cells(2, 26) > 0 Then
wks.Visible = xlSheetVisible
wks.Activate
wks.PrintOut
wks.Visible = xlSheetHidden
End If
Next
Application.ScreenUpdating = True
End Sub

diese blätter müssen im header folgende infos/formatierungen haben, die ich in folgender _
prozedur erzeugen will:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim strBearbeitet As String
Dim strTitel As String
Dim strPNR As String
'Nicht fürs Deckblatt "Kalkulation"
If LCase(Me.ActiveSheet.Name)  "kalkulation" Then
strTitel = ""
strBearbeitet = ""
strPNR = ""
strTitel = "&8Titel: " & Chr(32) & Sheets("Kalkulation").Range("D8").Value
strBearbeitet = "&8Druckdatum: " & Date
strPNR = "&8PNR: " & Chr(32) & Sheets("Kalkulation").Range("O12").Value
Me.ActiveSheet.Unprotect "****"
Me.ActiveSheet.PageSetup.LeftHeader = strTitel & Chr(13) & strPNR
Me.ActiveSheet.PageSetup.RightHeader = strBearbeitet
Me.ActiveSheet.PageSetup.CenterHeader = "&8Detailkalkulation" & Chr(32) & "&8&A"
Me.ActiveSheet.Protect "****"
'MsgBox Me.ActiveSheet.PageSetup.LeftHeader
End If
End Sub

es werden zwar die betroffenen blätter gedruckt, jedoch erfolgt keine änderung in den headern. nur wenn ich per seitenansicht vorab aufrufe wird der zweite code korrekt ausgeführt.
kann mir jemand da mal nen tip geben, wie das automatisch ablaufen könnte.
vielen, vielen dank
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: blätter drucken bei bedingung
30.12.2009 06:17:19
Lutz
Hallo Michael,
versuche es doch mal mit dem abgeänderten Code.
Option Explicit
Private Sub CommandButton100_Click()
Dim wks As Worksheet
Application.ScreenUpdating = False
For Each wks In Worksheets
If Not wks.Visible And wks.Cells(2, 26) > 0 Then
wks.Visible = xlSheetVisible
wks.Activate
Call Seite_ändern
wks.PrintOut
wks.Visible = xlSheetHidden
End If
Next
Application.ScreenUpdating = True
End Sub

Private Sub Seite_ändern()
Dim strBearbeitet As String
Dim strTitel As String
Dim strPNR As String
'Nicht fürs Deckblatt "Kalkulation"
If LCase(ActiveSheet.Name)  "kalkulation" Then
strTitel = ""
strBearbeitet = ""
strPNR = ""
strTitel = "&8Titel: " & Chr(32) '& Sheets("Kalkulation").Range("D8").Value
strBearbeitet = "&8Druckdatum: " & Date
strPNR = "&8PNR: " & Chr(32) & Sheets("Kalkulation").Range("O12").Value
ActiveSheet.Unprotect "****"
ActiveSheet.PageSetup.LeftHeader = strTitel & Chr(13) & strPNR
ActiveSheet.PageSetup.RightHeader = strBearbeitet
ActiveSheet.PageSetup.CenterHeader = "&8Detailkalkulation" & Chr(32) & "&8&A"
ActiveSheet.Protect "****"
End If
End Sub
M.f.G. Lutz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige