Vor- und Nachnamen in einem Seitenkopf (Microsoft Excel)
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 für ein solches Makro 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 (9543) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: