David verwaltet eine Wahl für eine Fachgesellschaft und die Liste der Wahlberechtigten ist ein Arbeitsblatt. Es gibt ungefähr 1.200 Wahlberechtigte, der Ausdruck umfasst also mehr als zwanzig Seiten. David hat eine Fußzeile mit der Seitenzahl – was hilfreich ist -, aber es wäre großartig, wenn er in der Kopfzeile jeder Seite den Vornamen auf der Seite und den Nachnamen auf der Seite haben könnte.

In Excel gibt es keine native Möglichkeit, dies zu tun. In Word ist dies jedoch ein relativer Schnappschuss. Eine Lösung besteht darin, die sortierten Namen in ein Word-Dokument einzufügen und dann den gewünschten Header hinzuzufügen, in dem die Namen angezeigt werden.

Während dies funktionieren kann, wird es schwierig sicherzustellen, dass die Word-Version der Liste immer mit der Excel-Version der Liste synchronisiert ist und umgekehrt.

Wenn Sie eine einzelne Version der Wählerliste in Excel behalten möchten, können Sie das Problem am besten lösen, indem Sie ein Makro verwenden, um den Vor- und Nachnamen in die Kopfzeile einzufügen. Der Code eines solchen Makros müsste natürlich auf das Layout der Daten in Ihrem Arbeitsblatt zugeschnitten sein. Das folgende Makro setzt voraus, dass sich die Namen in den Spalten A bis C befinden und die Nachnamen (die Sie für die Überschriften verwenden möchten) in Spalte C.

Sub PrintNamesInHeader()

Dim iPages As Integer     Dim iPage As Integer     Dim iHorPgs As Integer     Dim iHP As Integer     Dim iHPNext As Integer     Dim iCol As Integer     Dim iColLast As Integer     Dim lRow As Long     Dim lRowLast As Long     Dim sPrtArea As String

iCol = 1        'Col A     iColLast = 3    'Col C     With ActiveSheet         iPages = ExecuteExcel4Macro("Get.Document(50)")

iHorPgs = .HPageBreaks.Count + 1         sPrtArea = .PageSetup.PrintArea

For iPage = 1 To iPages             iHP = ((iPage - 1) Mod iHorPgs)

iHPNext = iHP + 1             If iHP = 0 Then                 If sPrtArea = "" Then                     lRow = 1                 Else                     lRow = .Range(sPrtArea).Cells(1).Row                 End If             Else                 lRow = .HPageBreaks(iHP).Location.Row             End If             If iHPNext > .HPageBreaks.Count Then                 lRowLast = .Cells(lRow, iColLast).End(xlDown).Row             Else                 lRowLast = .HPageBreaks(iHPNext).Location.Row - 1             End If             .PageSetup.LeftHeader = .Cells(lRow, iCol).Value & _               " - " & .Cells(lRowLast, iColLast)

.PrintOut From:=iPage, To:=iPage, preview:=True         Next     End With End Sub

Wenn Sie das Makro ausführen, durchläuft es jede Seite des Arbeitsblatts. Die Überschriften werden für die Seite festgelegt, dann wird die einzelne Seite gedruckt und dann wird die nächste Seite untersucht und verarbeitet.

_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 (9542) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: