Kategorien
Technik

Excel: Zelleninhalte in Kopfzeile einfügen

Wie kann man in Excel den Inhalt einer oder mehrerer Zellen in die Kopzeile bzw. die Fußzeile einfügen? Dies geht mittels eines kleinen Makros, getestet mit Excel 2003.

Hier gibt es, wie so oft, viele Wege, die zum gewünschten Ergebnis führen. Weiterführendes und Rat lässt sich in einschlägigen Fachforen finden, hier wird nur ein Codebeispiel gezeigt, an welchem man sich entlanghangeln kann.

Allgemeines zu Kopfzeile und Fußzeile
Die Fuß- und Kopfzeilen sind in Excel eingeteilt, in jeweils links, mitte und rechts, was in VB so angesprochen wird:
Fußzeile: LeftFooter bzw. CenterFooter bzw. RightFooter
Kopfzeile: LeftHeader bzw. CenterHeader bzw. RightHeader

Das heißt, in unten aufgeführtem Skript könnt ihr selbst bestimmen, wo eure Zelleninhalte angezeigt werden sollen, indem ihr den entsprechenden Befehl austauscht.

Was heißt „BeforePrint“?
Das Workbook.BeforePrint-Ereignis tritt ein, bevor die Arbeitsmappe (oder ein Teil ihres Inhalts) gedruckt wird. Mehr siehe bei MSDN.

Inhalt einer Zelle (hier: A18) in der mittleren Kopfzeile anzeigen lassen:

Private Sub Workbook_BeforePrint(Cancel As Boolean)

ActiveSheet.PageSetup.CenterHeader = Range(„A18“).Value

End Sub

Inhalt mehrerer Zellen (hier: A18, B18, A19, B19, A20, B20) in der mittleren Kopfzeile anzeigen lassen:
Vorbemerkung: & heißt, dass ein Wert angefügt wird. Der Wert kann reiner Text sein, der von „“ umschlossen ist, z. B. „, “ oder der Inhalt einer weiteren Zelle.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveSheet.PageSetup.CenterHeader = Range(„A18“).Value & „: “ & Range(„B18“).Value & „, “ & Range(„A19“).Value & „: “ & Range(„B19“).Value & „, “ & Range(„A20“).Value & „: “ & Range(„B20“).Value

End Sub

In dem Beispiel haben wir den Zellbereich von A18 bis B20 in die mittlere Kopfzeile eingefügt und die Zellen noch mit Doppelpunkt, Komma und Leerzeichen voneinander abgetrennt. Es wurde aus diesen Zellen:

diese Kopfzeile, die auf dem Ausdruck oder auch bereits in der Seitenansicht zu sehen ist:

xAktualisierung: 17.11.2010

Steffen fragt in den Kommentaren nach einer abgewandelten Version nach:

Aufgabenstellung:

ich möchte in der Kopfzeile 3 Zeilen von deinem o.g. Beispiel untereinander einfügen, also z.B. Zeile 1 in der Kopfzeile ist der Text von A18,B18,A19,B19 und Zeile 2 in der Kopfzeile ist der Text von A20,B20,A21,B21 und Zeile 3 in der Kopfzeile ist der Text von A22,B22,A23,B23.

So sieht also der Text im Dokument aus, der in 3 Zeilen in die Kopfzeile soll:
Excel Kopfzeile1

Ergebnis:
Den Zeilenumbruch bekommen wir in Visual Basic hier zum Beispiel mit Chr(13) hin. Der Code im VB-Editor sieht dann also so aus:

VB Editor

Private Sub Workbook_BeforePrint(Cancel As Boolean)

ActiveSheet.PageSetup.CenterHeader = Range(„A18“).Value & „, “ & Range(„B18“).Value & „, “ & Range(„A19“).Value & „, “ & Range(„B19“).Value & Chr(13) & Range(„A20“).Value & „, “ & Range(„B20“).Value & „, “ & Range(„A21“).Value & „, “ & Range(„B21“).Value & Chr(13) & Range(„A22“).Value & „, “ & Range(„B22“).Value & „, “ & Range(„A23“).Value & „, “ & Range(„B23“).Value

End Sub

Druckvorschau:
Druckvorschau Excel

Viel Erfolg beim Nachbauen!

Stay blogged. 😎

Euer Matthias