AW: Seitenumbruch beim Drucker
17.03.2006 12:52:40
Franz
Hallo Pauker,
hier ein Makro, dass den unteren Rahmen der Zellen in der letzten Zeile einer Seite "dick" formatiert.
Da der Seitenumbruch ggf. druckerabhängig ist oder nach der letzten Formatierung der Zellen am Seitenwechsel Zeilen gelöscht oder hinzugefügt wurden, werden im 1. Durchlauf die vorhandenen Formatierungen entfernt und im 2. Durchlauf an den Seitenwechseln eingefügt. Die Laufzeit des Makros ist relativ lang (zumindest für mein Gefühl)
Sub DickeLinieSeitenende()
Dim wks1 As Worksheet, I As Integer, Spalten As Integer, Zelle As Range
Set wks1 = ActiveSheet
Spalten = wks1.UsedRange.Columns.Count 'hier kann auch eine feste Zahl angegeben werden
'Entfernen der vorhandene "Dicken Linien"
For I = 1 To wks1.UsedRange.Rows.Count
Set Zelle = Cells(I, 1)
'Überprüfung ob in Spalte 1 Zelle mit "dicker Linie unten" vorliegt
If Zelle.Borders(xlEdgeBottom).Weight = xlThick Then
' Änderung der Rahmenformatierung unten in den Zellen der Zeile
With Range(Zelle.Offset(0, 0), Zelle.Offset(0, Spalten - 1)).Borders(xlEdgeBottom)
.LineStyle = xlLineStyleNone
End With
End If
Next I
For I = 1 To wks1.UsedRange.Rows.Count
Set Zelle = Cells(I, 1)
'Überprüfung ob Seitenwechsel in Zeile vorliegt
If Zelle.EntireRow.PageBreak = xlPageBreakAutomatic Or Zelle.EntireRow.PageBreak = xlPageBreakManual Then
' Änderung der Rahmenformatierung in den Zellen der Zeile davor
With Range(Zelle.Offset(-1, 0), Zelle.Offset(-1, Spalten - 1)).Borders(xlEdgeBottom)
.Weight = xlThick
.LineStyle = xlContinuous
End With
End If
Next I
Set Zelle = Cells(I, 1)
' Änderung der Rahmenformatierung in der letzten Zeile
With Range(Zelle.Offset(-1, 0), Zelle.Offset(-1, Spalten - 1)).Borders(xlEdgeBottom)
.Weight = xlThick
.LineStyle = xlContinuous
End With
End Sub
Gruß
Franz