Microsoft Excel

Herbers Excel/VBA-Archiv

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

blätter drucken bei bedingung | Herbers Excel-Forum


Betrifft: blätter drucken bei bedingung von: Michael
Geschrieben am: 29.12.2009 15:56:27

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

  

Betrifft: AW: blätter drucken bei bedingung von: Lutz petzold
Geschrieben am: 30.12.2009 06:17:19

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


Beiträge aus den Excel-Beispielen zum Thema "blätter drucken bei bedingung"