Hallo Forum,
bin am verzweifeln. Ich hatte die Frage schon vor ein paar Tagen gestellt und auch
eine Antwort erhalten, es will aber einfach nicht klappen:
Es geht "nur" darum, einen bestimmten Bereich auf genau 10 Seiten A4 zu drucken.
Der Bereich umfasst 520 Zeilen, also 52 Zeilen pro Seite.
Ich habe ein Druckmakro geschrieben, dass wunderbar funktioniert aber nur unter dem Mac.
Sobald das Dokument unter Windows geöffnet wird bringt er mir die Druckseiten durcheinander.
Warum nur?
Bin für jeden Hinweis dankbar.
Gruß
Klaus
Option Explicit
'Anzahl Zeilen pro Druckseite
Public Const intSEITE As Integer = 52
'Erste Zeile Printbereich
Public Const intZEILE As Integer = 6
'Bis zu welcher Spalte wird gedruckt
Public Const strSPALTE As String = "P"
Sub Drucken()
Dim lToRow As Long
Dim PrintArea As Range
Dim maxPage As Integer
With ActiveSheet
'Letzte Zeile festlegen
lToRow = .Cells.Find(what:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
'Anzahl Druckblätter ermitteln (= letzte Seitenzahl)
maxPage = WorksheetFunction.Max(Range("J" & intZEILE & ":" & "J" & lToRow))
'Printbereich festlegen = (B+1.Druckzeile) bis (letzte Zeile / letzte Spalte)
Set PrintArea = ActiveSheet.Range("B" & intZEILE & ":" & strSPALTE & lToRow)
ActiveSheet.PageSetup.PrintArea = PrintArea.Address
End With
With ActiveSheet.PageSetup
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.393700787401575)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.CenterHorizontally = True
.CenterVertically = True
.Order = xlDownThenOver
.FitToPagesWide = 1
'Unterteilen des Printbereichs in Anzahl Druckblätter:
.FitToPagesTall = maxPage
End With
ActiveSheet.PrintPreview
'Drucklinien zurücksetzen
ActiveSheet.ResetAllPageBreaks
End Sub