Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Kopfzeile formatieren per VBA

Kopfzeile formatieren per VBA
17.12.2004 11:08:51
Heike
Hallo,
ich habe mir gestern folgende Syntax für meine Tabelle übernommen :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
ThisWorkbook.Worksheets("Tabelle2").PageSetup.CenterHeader = Target.Value
End If
End Sub

Damit wird in der Kopfzeile der Tabelle2 eine Überschrift erstellt. Klappt ja ganz gut, nur wenn der Wert geändert wird, wird die Kopfzeile wieder ins Standardformat versetzt (Arial, Schriftgröße 10)
Wie kann ich es erreichen, dass die Kopfzeile immer in Maximaler Schriftgröße/Fett Kursiv geschrieben wird ?
Bitte um Hilfe
Heike
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopfzeile formatieren per VBA
UweD
Hallo
so:
ThisWorkbook.Worksheets("Tabelle2").PageSetup.CenterHeader = "&""Arial,Fett Kursiv""&72" & Target.Value
Gruß UweD
noch immer standard 10 ?
17.12.2004 11:33:21
Heike
Hallo,
Kopfzeile ist noch immer Standard 10
Der CODE :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
ThisWorkbook.Worksheets("Tabelle2").PageSetup.CenterHeader = "&""Arial,Fett Kursiv""&72" & Target.Value
End If
End Sub

Heike
Anzeige
AW: noch immer standard 10 ?
17.12.2004 11:38:24
Heinz
Hallo Heike,
dann schaust du nicht in die Kopfzeile der Tabelle2, sondern in eine andere.
Bei mir funktionierts ganz normal
Gruß
Heinz
AW: noch immer standard 10 ?
Dr.
Hab auch mal getestet. Bei mir funktionierts ebensowenig. ;-)
AW: noch immer standard 10 ?
17.12.2004 11:44:17
Heinz
Hallo Heike, Dr
hier die Datei. Trag etwas in die Zelle A1 der Tabelle1 ein und es steht als Kopfzeile in der Tabelle2.
https://www.herber.de/bbs/user/14953.xls
Gruß
Heinz
Anzeige
AW: noch immer standard 10 ?
Dr.
Auch da tut sich bei mir GOR nix. ;-)
AW: noch immer standard 10 ?
17.12.2004 11:50:09
Heinz
Hallo Dr
dass du die Makros aktiviert hast, nehme ich an. Das kann ich dann nicht verstehen.
Funktionieren andere Ereignismakros?
Gruß
Heinz
AW: noch immer standard 10 ?
Dr.
Yep, alle bis auf Deins *g*
Anzeige
Doch Tabelle2 !
17.12.2004 11:50:49
Heike
Hallo Heinz,
doch schaue ich in Tabelle2 aber :
Ich habe mal nachgesehen im VBA Modus werden mit folgende Tabellen angezeigt:
Microsoft Excel Objekte
_Diese Arbeitsmappe
_Tabelle 1(Eingabe)
_Tabelle 2(Tabelle2)
_Tabelle 3(Tabelle3)
_Tabelle 4(Tabelle1)
Die Werte stehen in _Tabelle4 (Tabelle1)
Heißt also, ich habe die "Tabelle1" später eingefügt, was muss ich nun tun, damit das trotzdem geht ?
Der Name steht in der Kopfzeile, aber wie gesagt in Arial 10
Gruss
Heike
Anzeige
AW: Doch Tabelle2 !
17.12.2004 11:55:23
Heinz
Hallo Heike,
ThisWorkbook.Worksheets("Tabelle2").PageSetup.CenterHeader = "&""Arial,Fett Kursiv""&72" & Target.Value
In der Code-Zeile steht der Tabellenname (also der auf der Registerzunge steht).
Der Code muss in den Codebereich der Tabelle, in der du in der Zelle A1 den Eintrag für die Kopfzeile der Tabelle2 machen möchtest.
Hast du meine Datei ausprobiert? Dass das bei Dr nicht funzt, ist mir ein Rätsel.
Gruß
Heinz
Anzeige
Name steht drin, ist änderbar, aber Arial 10
17.12.2004 11:59:37
Heike
Hallo Heinz,
der Name steht in der Kopfzeile und ist über das Makro auch änderbar, wird aber nur in Arial 10 dargestellt.
Danke
Heike
Einfacher wenn der Zellbezug in Tabelle2 steht ?
17.12.2004 12:05:48
Heike
Hallo,
ist es denn einfacher, wenn der Name in Zelle BQ1 der Tabelle2 steht ?
Dazu muss ich wohl den Code entsprechend ändern oder ?
Heike
Anzeige
Frage noch offen !
17.12.2004 12:22:21
Heike
Leider bin ich noch nicht weitergekommen !
AW: Frage noch offen !
UweD
Hallo nochmal
lad mal deine Datei hoch, wo es nicht funktioniert.
Klappt diese Datei bei uns, liegt es ja nicht am Makro sondern an deiner Excel-Umgebung.
Gruß UweD
AW: Frage noch offen !
UweD
Hallo
Was steht denn in A1? ein Zahl oder ein Text?
Hab gerade gemerkt, das es bei einer Zahl so nicht klappt.
Dann wird nämlich diese String zusammengebaut: "&"Arial,Fett Kursiv"&721233" (1233 als Beispiel)
Dann kommt ecxel mit der Zeichengröße 72 durcheinander.
So (ein zusätzliches Leerzeichen) klappt es aber wieder:
siehe Musterdatei: https://www.herber.de/bbs/user/14956.xls

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
ThisWorkbook.Worksheets("Tabelle2").PageSetup.CenterHeader = "&""Arial,Fett Kursiv""&72 " & Target.Value
Sheets("Tabelle2").PrintPreview 'Test
End If
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Kopfzeile in Excel formatieren mit VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Wähle das entsprechende Arbeitsblatt:

    • Suche im Projektfenster nach dem Arbeitsblatt, in dem du die Kopfzeile ändern möchtest.
  3. Füge den VBA-Code ein:

    • Kopiere folgenden Code in das Codefenster des gewählten Arbeitsblatts:
    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address = "$A$1" Then
           ThisWorkbook.Worksheets("Tabelle2").PageSetup.CenterHeader = "&""Arial,Fett Kursiv""&72 " & Target.Value
           Sheets("Tabelle2").PrintPreview ' Test
       End If
    End Sub
  4. Aktiviere Makros:

    • Stelle sicher, dass die Makros in Excel aktiviert sind, damit der Code funktioniert.
  5. Teste den Code:

    • Ändere den Inhalt in Zelle A1 deiner Tabelle, um zu sehen, ob die Kopfzeile in Tabelle2 aktualisiert wird.

Häufige Fehler und Lösungen

  • Fehler: Kopfzeile bleibt in Standardformat

    • Lösung: Überprüfe, ob du den richtigen Tabellennamen verwendest und dass der Code im richtigen Arbeitsblatt eingefügt wurde.
  • Fehler: Schriftgröße bleibt 10

    • Lösung: Achte darauf, dass du das Leerzeichen vor Target.Value im Code nicht weglässt.
  • Fehler: Kein Update der Kopfzeile

    • Lösung: Vergewissere dich, dass die Makros aktiviert sind und dass der richtige Zellbezug (z.B. A1) verwendet wird.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du die Kopfzeile auch manuell formatieren:

  1. Gehe zu „Seitenlayout“.
  2. Klicke auf „Seite einrichten“ und wähle „Kopfzeile“.
  3. Wähle das Format für die Schriftgröße, den Stil und die Ausrichtung.

Um die Schriftgröße der Fußzeile zu ändern, gehe ähnlich vor und wähle die Fußzeile in den Seiteneinstellungen aus.


Praktische Beispiele

  • Kopfzeile mit Grafik: Um eine Grafik in der Kopfzeile zu formatieren, kannst du folgenden Code verwenden:

    With ThisWorkbook.Worksheets("Tabelle2").PageSetup
       .CenterHeaderPicture.Filename = "C:\Pfad\zu\deiner\Grafik.jpg"
       .CenterHeader = "&G"
    End With
  • Ändern der Höhe der Kopfzeile: Um die Höhe der Kopfzeile zu ändern, kannst du die HeaderHeight-Eigenschaft verwenden:

    ThisWorkbook.Worksheets("Tabelle2").PageSetup.HeaderHeight = 50

Tipps für Profis

  • Verwende Konstanten: Statt feste Werte zu verwenden, kannst du Konstanten definieren, um die Wartung des Codes zu erleichtern.

  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen in deinem VBA-Code, um unerwartete Fehler zu vermeiden.

  • Testen in verschiedenen Excel-Versionen: Stelle sicher, dass dein Code in den von dir unterstützten Excel-Versionen funktioniert, da einige Funktionen je nach Version unterschiedlich sein können.


FAQ: Häufige Fragen

1. Wie kann ich die Schriftgröße der Kopfzeile in Excel ändern?
Um die Schriftgröße der Kopfzeile zu ändern, kannst du den VBA-Code anpassen, wie oben beschrieben.

2. Kann ich auch die Fußzeile formatieren?
Ja, die Fußzeile kann ähnlich wie die Kopfzeile formatiert werden. Verwende die Eigenschaften CenterFooter, LeftFooter oder RightFooter in deinem VBA-Code.

3. Was mache ich, wenn der Code nicht funktioniert?
Überprüfe, ob du die richtigen Zellreferenzen und Tabellennamen verwendest und dass die Makros in deiner Excel-Umgebung aktiviert sind.

4. Ist es möglich, mehrere Kopfzeilen zu erstellen?
Du kannst mehrere Kopfzeilen für verschiedene Seiten konfigurieren, indem du den PageSetup-Bereich entsprechend anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige