@Josef Ehrensberger - Ich brauch Dich noch mal
Konni
mit Deinem Code komme ich wunderbar klar. Bis jetzt!
Nun soll eine Seite meiner Tabelle im Hochformat ausgedruckt werden. Kriege ich aber nicht hin, da der Code immer Querformat wählt. Außerdem benötige ich am Kopf 2,5 cm Heftrand.
Willst Du mir noch einmal zur Seite stehen?
Sub Drucken(intCol As Integer) 'von Josef Ehrensberger
Dim rngHide As Range, rng As Range
Dim lngLast As Long
Dim vBreak As VPageBreak, hBreak As HPageBreak
On Error GoTo ErrExit
Application.ScreenUpdating = False
With Worksheets("Protokolltext")
lngLast = .Cells(Rows.Count, 2).End(xlUp).Row
If Application.CountA(.Range(.Cells(1, 2), .Cells(lngLast, 2))) < lngLast Then
For Each rngHide In .Range(.Cells(1, 2), .Cells(lngLast, 2))
If rngHide = "" Then
If rngHide.MergeCells Then
For Each rng In rngHide.MergeArea
rng.EntireRow.Hidden = rngHide.MergeArea.Cells(1) = ""
Next
Else
rngHide.EntireRow.Hidden = True
End If
End If
Next
End If
If Not rngHide Is Nothing Then rngHide.EntireRow.Hidden = True
On Error Resume Next
For Each vBreak In .VPageBreaks
vBreak.Delete
Next
For Each hBreak In .HPageBreaks
hBreak.Delete
Next
On Error GoTo ErrExit
.PageSetup.PrintArea = .Range(.Cells(1, 2), .Cells(lngLast, intCol)).Address
.PageSetup.Orientation = xlLandscape
.PageSetup.LeftMargin = Application.InchesToPoints(0.393700787401575)
.PageSetup.RightMargin = Application.InchesToPoints(0.31496062992126)
.PageSetup.TopMargin = Application.InchesToPoints(0.393700787401575)
.PageSetup.BottomMargin = Application.InchesToPoints(0.393700787401575)
.PageSetup.FitToPagesWide = 1
.PageSetup.FitToPagesTall = 99
.PrintPreview 'PrintPreview = Druckvorschau, PrintOut = Drucken
.PageSetup.PrintArea = ""
.Range(.Cells(1, 2), .Cells(lngLast, 2)).Rows.Hidden = False
Set rngHide = Nothing
End With
ActiveSheet.DisplayAutomaticPageBreaks = False
ErrExit:
Application.ScreenUpdating = True
End Sub
Sub Protokolltext_drucken_B_bis_D() 'von Josef Ehrensberger
Drucken 4
End Sub
Tausend Dank an Dich
Gruß
Konni