Leonid fragte, ob es eine Möglichkeit gebe, eine Hintergrundfarbe für die Kopf- oder Fußzeile einer Seite festzulegen. Die einfache Antwort ist, dass es in Excel keine solche Funktion gibt. Es gibt jedoch einige Möglichkeiten, um das Problem zu umgehen. Wenn Sie beispielsweise Excel 2002 oder Excel 2003 verwenden, können Sie einer Kopf- oder Fußzeile eine Grafik hinzufügen. Mit der richtigen Grafik können Sie den Eindruck erwecken, dass Kopf- und Fußzeile Farbe enthalten, obwohl tatsächlich die Grafik die Farbe enthält.

Eine andere Möglichkeit besteht darin, „falsche“ Kopf- und Fußzeilen zu erstellen. Wenn Sie nur eine andere Farbüberschrift haben möchten, können Sie die ersten Zeilen des Arbeitsblatts als Überschrift verwenden. Diese Zeilen können Sie wie gewünscht formatieren, einschließlich der Einstellung der Farbe der Zeilen. Sie können Excel dann anweisen, diese Zeilen oben auf jeder Seite des Ausdrucks zu wiederholen (verwenden Sie dazu das Dialogfeld „Seite einrichten“).

Das Wiederholen von Zeilen für den Fußzeilenbereich wird problematischer, da Excel keine Funktion enthält, mit der Sie Zeilen am Ende jeder Seite wiederholen können. Das Erstellen eines Makros zum Hinzufügen von Zeilen für Kopf- und Fußzeile ist möglich, führt jedoch zu einer Änderung Ihres Arbeitsblatts. Für die gefälschten Kopf- und Fußzeilen müssen Zeilen hinzugefügt werden.

Betrachten Sie als Beispiel das folgende Makro. Es wird davon ausgegangen, dass Sie links und rechts vom Ausdruck einen 1-Zoll-Rand möchten und nur 46 Zeilen pro Seite drucken möchten. Es legt die Ränder fest und geht dann durch das Arbeitsblatt, wobei nach Bedarf die gefälschten Kopf- und Fußzeilen hinzugefügt werden. (Da das Makro das Design des Arbeitsblatts anpasst, stellen Sie sicher, dass Sie Ihr Arbeitsblatt speichern, bevor Sie das Makro ausführen.)

Sub FakeHeaderFooter()

Dim LHeader As String     Dim CHeader As String     Dim LFooter As String     Dim CFooter As String     Dim CBottom As Integer     Dim CRow As Integer     Dim PageSize As Integer          LHeader = "Top Left"

CHeader = "Top Center"

LFooter = "Bottom Left"

CFooter = "Bottom Center"

PageSize = 46

With ActiveSheet.PageSetup         .PrintTitleRows = ""

.PrintTitleColumns = ""

.PrintArea = ""

.LeftHeader = ""

.CenterHeader = ""

.RightHeader = ""

.LeftFooter = ""

.CenterFooter = ""

.RightFooter = ""

.LeftMargin = Application.InchesToPoints(1)

.RightMargin = Application.InchesToPoints(1)

.TopMargin = Application.InchesToPoints(0)

.BottomMargin = Application.InchesToPoints(0)

.HeaderMargin = Application.InchesToPoints(0)

.FooterMargin = Application.InchesToPoints(0)

.PrintHeadings = False         .Orientation = xlPortrait     End With

CBottom = Range("A16000").End(xlUp).Row

CRow = 1     Do Until CRow > CBottom         If CRow Mod PageSize = 1 Then             Rows(CRow).Select             Selection.Insert Shift:=xlDown             Selection.Insert Shift:=xlDown             CBottom = CBottom + 2

Cells(CRow, 1).Value = LHeader             Cells(CRow, 4).Value = CHeader             Range(Cells(CRow, 1), _               Cells(CRow, 8)).Interior.ColorIndex = 34             Range(Cells(CRow + 1, 1), _               Cells(CRow + 1, 8)).Interior.ColorIndex = xlNone             CRow = CRow + 2         ElseIf CRow Mod PageSize = PageSize - 1 Then             Rows(CRow).Select             Selection.Insert Shift:=xlDown             Selection.Insert Shift:=xlDown             CBottom = CBottom + 2

Cells(CRow + 1, 1).Value = LFooter             Cells(CRow + 1, 4).Value = CFooter             Range(Cells(CRow + 1, 1), _               Cells(CRow + 1, 8)).Interior.ColorIndex = 34             CRow = CRow + 2         Else             CRow = CRow + 1         End If     Loop

LastPageNumber = PageNumber + 1     LastRow = LastPageNumber * PageSize     If CBottom <> LastRow Then             Range(Cells(LastRow, 1), _               Cells(LastRow, 8)).Interior.ColorIndex = 34             Cells(LastRow, 1).Value = LFooter             Cells(LastRow, 4).Value = CFooter     End If

CBottom = Range("A16000").End(xlUp).Row

CRow = 2     Do Until CRow > CBottom         If CRow Mod PageSize = 1 Then             Cells(CRow, 1).PageBreak = xlManual         End If         CRow = CRow + 1     Loop End Sub

Um die Anzahl der Zeilen pro Seite zu ändern, ändern Sie einfach den Wert, der der Variablen PageSize zugewiesen ist. Sie können auch ändern, was im Bereich „Kopf-“ und „Fußzeile“ angezeigt wird, indem Sie ändern, was den Variablen LHeader, CHeader, LFooter und CFooter zugewiesen ist.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (3056) gilt für Microsoft Excel 97, 2000, 2002 und 2003.