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 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: