...168...


Nur ungerade Seiten drucken
Sub Ungerade_Seiten_drucken()
Dim i As Integer, x As Integer
' Ein manueller Seitenumbruch auf der letzten
' Seite wird erzwungen
' (gestützt auf den letzten Eintrag in Spalte A)
ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
   ' Die belegten Zeilen werden gezählt, um die Anzahl
   ' der Seitenumbrüche abzuarbeiten
   For i = 1 To ActiveSheet.UsedRange.Rows.Count + 1
      If Rows(i).PageBreak <> xlNone Then
      x = x + 1
         ' Wenn eine ungerade Seite gefunden wurde,
         ' dann wird gedruckt
         If x Mod 2 <> 0 Then
            ActiveWindow.SelectedSheets.PrintOut _
            From:=x, To:=x, Copies:=1, Collate:=True
         End If
      End If
   Next i
' Der manuelle Seitenumbruch wird wieder entfernt
ActiveSheet.HPageBreaks(x).Delete
End Sub

 


Nur gerade Seiten drucken
Sub Ungerade_Seiten_drucken()
Dim i As Integer, x As Integer
ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
   For i = 1 To ActiveSheet.UsedRange.Rows.Count + 1
      If Rows(i).PageBreak <> xlNone Then
      x = x + 1
         ' Hier ist der einzige Unterschied zu finden (<>)
         If x Mod 2 <> 0 Then
            ActiveWindow.SelectedSheets.PrintOut _
            From:=x, To:=x, Copies:=1, Collate:=True
         End If
      End If
   Next i
ActiveSheet.HPageBreaks(x).Delete
End Sub

by Monika Weber


Doppelseitig drucken
Sub DoppelSeitigDrucken()
Dim Seitenanzahl As Integer
  Seitenanzahl = ExecuteExcel4Macro("Get.Document(50)")
  ActiveSheet.PageSetup.Order = xlOverThenDown
  MsgBox "Es werden die ungeraden Seiten gedruckt!"
  UngeradeSeitenDrucken Seitenanzahl
  MsgBox "Seiten neu einlegen." & Chr(13) & "Fertig?"
  GeradeSeitenDrucken Seitenanzahl
  MsgBox "Es wurden die geraden Seiten gedruckt! "
End Sub

Sub GeradeSeitenDrucken(Seitenanzahl As Integer)
Dim I As Integer
  For I = 1 To Seitenanzahl
    If I Mod 2 = 0 Then
      With ActiveSheet
        .PageSetup.LeftFooter = "Seite " & I
        .PrintOut From:=I, To:=I
        .PageSetup.LeftFooter = ""
      End With
    End If
  Next
End Sub

Sub UngeradeSeitenDrucken(Seitenanzahl As Integer)
Dim I As Integer
  For I = 1 To Seitenanzahl
    If I Mod 2 <> 0 Then
      With ActiveSheet
        .PageSetup.RightFooter = "Seite " & I
        .PrintOut From:=I, To:=I
        .PageSetup.RightFooter = ""
      End With
    End If
  Next
End Sub

by Frank Arendt-Theilen