Im vorherigen Beitrag habe ich mit Hilfe von VBA einen Zelleninhalt in das linke Feld der Kopfzeile geschrieben und die Schriftart/-größe festgelegt. Jetzt soll die Kopfzeile mehrzeilig ausgeführt werden.
Zuerst ergänze ich die Daten für die Kopfzeile in der, ausserhalb des Druckbereichs liegenden, Zelle N3.
Der VBA-Code muss nun mit einem Zeilenumbruch „Chr(10)“ (Anweisung für „neue Zeile“) ergänzt werden.
Da die zweite Zeile jedoch nicht in der gleichen Größe dargestellt werden soll, muss hier die Schriftart und -größe erneut übergeben werden.
1 2 3 4 5 6 |
Private Sub dynkopf() With ActiveSheet.PageSetup .LeftHeader = "&""ARIAL,Fett""&24" & Range("N2") & Chr(10) & "&""ARIAL,Fett Kursiv""&12" & Range("N3") End With End Sub |
Wird jetzt wieder der „Play“-Button im VBA-Editor gedrückt,
ergibt das folgendes Resultat.
Klappt:
Erweitern wir das Ganze noch um zwei weitere Zeilen.
Und mit entsprechend angepassten VB-Code
1 2 3 4 5 6 7 8 |
Private Sub dynkopf() With ActiveSheet.PageSetup .LeftHeader = "&""ARIAL,Fett""&24" & Range("N2") & Chr(10) & _ "&""ARIAL,Fett Kursiv""&12" & Range("N3") & Chr(10) & _ "&""ARIAL,Normal""&8" & Range("N4") & Chr(10) & Range("N5") End With End Sub |
Ergibt das folgendes Resultat.
Erzeugt man nun ein weiteres Tabellenblatt durch kopieren
und passt den Inhalt an,
wird nicht nur der Inhalt der Zellen kopiert, sondern auch die VBA-Anweisung der Quell-Tabelle.
Drückt man jetzt, bei aktivierter neuen Tabelle, der „Play“-Button – oder einfach durch Umschalten der Tabellenblätter -, erhält auch das neue Tabellenblatt die gewünschte Kopfzeile mit den entsprechenden Inhalt.
Grundsätzlich funktioniert es jetzt, aber bei mehreren Tabellenblätter wäre eine Änderung am Code umständlich, da er bei jedem Tabellenblatt geändert werden müsste.
Eine kleine Optimierung des VBA-Codes gibt es im nächsten Teil.
>