Microsoft Excel – Kopf- und Fußzeile mit einem Marko flexibel und schnell anpassen

Mit Hilfe von VBA lassen sich die Kopf- und Fußzeile sehr einfach und schnell befüllen.


Global Const Title As String = "Titel"
Global Const Company As String = "Company"
Global Const Department As String = "Department"
Global Const Author As String = "Stefan Strobel"
Global Const Version As String = "1.0"
Global Const Year As String = "2015"
Global Const Month As String = "Month"
Global Const EMail As String = "help@me"


Sub KopfFußZeile()
    With ActiveSheet.PageSetup
        .LeftHeader = "&8" & Title & vbCr & "Version: " & Version & " / " & Month & " " & Year
        .CenterHeader = "&8"
        .RightHeader = "&8"
        .LeftFooter = "&8" & Company & vbCr & Department
        .CenterFooter = "&8Created on: " & Date & " " & Time
        .RightFooter = "&8" & " Contact: " & EMail & vbCr & "Author: " & Author
    End With
    'ActiveWindow.SelectedSheets.PrintPreview
End Sub


Anstatt die Variablen zu definieren, kann man die Einträge natürlich auch gleich direkt in die jeweiligen Kopf- und Fußzeilen-Bereiche schreiben. Da ich die Variablen aber noch mehrmals an unterschiedlichen Stellen in der Arbeitsmappe benötigt habe, habe ich diese als globale Variablen definiert.
Die Schriftgröße in der Kopf- und Fußzeile wird mit dem Befehl &8 gesetzt.

Kopf- und Fußzeile gestalten mit VBA

Die Kopf- und Fußzeile einer Excel-Tabelle lässt sich über VBAMakros genauso flexibel und einfach gestalten, wie in Excel selbst.

Anforderungen

  • Ansprechen aller Header- und Footer-Bereiche
  • Flexible Benennung

Code

Option Explicit

Dim strUnternehmen As String
Dim strGroup As String



Sub KopfFuß()                               ' Fügt Kopf- und Fußzeile in jedes Tabellenblatt ein

strUnternehmen = "Mein Unternehmen"
strGroup = "Group"

Dim isht As Worksheet

For Each isht In ThisWorkbook.Sheets
    Call KopfFußzeile_alle_Tabellen(isht, strUnternehmen, strGroup)
Next

End Sub



Private Sub KopfFußzeile_alle_Tabellen(sht As Worksheet, strUnternehmen As String, strGroup As String)           ' KopfFußzeilendefinition
   With sht.PageSetup
        .LeftHeader = "Bearbeiter: " & strVerant_Personal
        .CenterHeader = "Lagertabelle für " & strUnternehmen
        .RightHeader = Date
        .LeftFooter = ""
        .CenterFooter = "© by " & strGroup
        .RightFooter = "Seite &P von &N"
    End With
    
End Sub

Der Code ist in drei Blöcke aufgeteilt.
Im ersten Bereich werden zwei Variablen für die weitere Verwendung in diesem Modul definiert.
Im zweiten Bereich werden den Varialben Werte zugewiesen

  • strUnternehmen = „Mein Unternehmen“
  • strGroup = „Group“

und es wird festgelegt, dass für die gesamte Arbeitsmappe die gleiche Kopz- und Fußzeile zu verwenden ist.

Dim isht As Worksheet

For Each isht In ThisWorkbook.Sheets
    Call KopfFußzeile_alle_Tabellen(isht, strUnternehmen, strGroup)
Next

Im dritten Zeil sind die eigentlichen Einstellungen für Kopf- und Fußbereich zu finden. In Englisch wird der Kopf- und Fußbereich mit Header und Footer bezeichnet.

Private Sub KopfFußzeile_alle_Tabellen(sht As Worksheet, strUnternehmen As String, strGroup As String)           ' KopfFußzeilendefinition
   With sht.PageSetup
        .LeftHeader = "Bearbeiter: " & strVerant_Personal
        .CenterHeader = "Lagertabelle für " & strUnternehmen
        .RightHeader = Date
        .LeftFooter = ""
        .CenterFooter = "© by " & strGroup
        .RightFooter = "Seite &P von &N"
    End With
    
End Sub

Zu beachten ist, dass das Makro KopfFußzeile_alle_Tabellen zusammen mit dem Makro KopfFuß aufgerufen wird (Beachte Call-Befehlt).

Besonderheit

Im dritten Bereich ist eine Variable zu finden, die in diesem Modul nicht definiert wurde. Sie lautet strVerant_Personal. Die Variable wird aus einem anderen Makro geholt, damit in diesem Beispiel im Headerbereich die Personalnummer hinter dem Text Bearbeiter eingefügt wird, z.B. Bearbeiter: 1234

Kopf- und Fußzeile gestalten

Die Kopf- und Fußzeile einer Excel-Tabelle lässt sich über VBA.Makros genauso flexibel und einfach gestalten, wie in Excel selbst.

Anforderungen

  • Ansprechen aller Header- und Footer-Bereiche
  • Flexible Benennung

Code

Option Explicit

Dim strUnternehmen As String
Dim strGroup As String



Sub KopfFuß()                               ' Fügt Kopf- und Fußzeile in jedes Tabellenblatt ein

strUnternehmen = "Unternehmen XY"
strGroup = "Unternehmens Gruppe"

Dim isht As Worksheet

For Each isht In ThisWorkbook.Sheets
    Call KopfFußzeile_alle_Tabellen(isht, strUnternehmen, strGroup)
Next

End Sub



Private Sub KopfFußzeile_alle_Tabellen(sht As Worksheet, strUnternehmen As String, strGroup As String)           ' KopfFußzeilendefinition
   With sht.PageSetup
        .LeftHeader = "Bearbeiter: " & strVerant_Personal
        .CenterHeader = "Tbelle für " & strUnternehmen
        .RightHeader = Date
        .LeftFooter = ""
        .CenterFooter = "© by " & strGroup
        .RightFooter = "Seite &P von &N"
    End With
    
End Sub

Der Code ist in drei Blöcke aufgeteilt.
Im ersten Bereich werden zwei Variablen für die weitere Verwendung in diesem Modul definiert.
Im zweiten Bereich werden den Variablen Werte zugewiesen

  • strUnternehmen = „Unternehmen XY“
  • strGroup = „Unternehmens Gruppe“

und es wird festgelegt, dass für die gesamte Arbeitsmappe die gleiche Kopf- und Fußzeile zu verwenden ist.

Dim isht As Worksheet

For Each isht In ThisWorkbook.Sheets
    Call KopfFußzeile_alle_Tabellen(isht, strUnternehmen, strGroup)
Next

Im dritten Zeil sind die eigentlichen Einstellungen für Kopf- und Fußbereich zu finden. In Englisch wird der Kopf- und Fußbereich mit Header und Footer bezeichnet.

Private Sub KopfFußzeile_alle_Tabellen(sht As Worksheet, strUnternehmen As String, strGroup As String)           ' KopfFußzeilendefinition
   With sht.PageSetup
        .LeftHeader = "Bearbeiter: " & strVerant_Personal
        .CenterHeader = "Tabelle für " & strUnternehmen
        .RightHeader = Date
        .LeftFooter = ""
        .CenterFooter = "© by " & strGroup
        .RightFooter = "Seite &P von &N"
    End With
    
End Sub

Zu beachten ist, dass das Makro KopfFußzeile_alle_Tabellen zusammen mit dem Makro KopfFuß aufgerufen wird (Beachte Call-Befehlt).

Besonderheit

Im dritten Bereich ist eine Variable zu finden, die in diesem Modul nicht definiert wurde. Sie lautet strVerant_Personal. Die Variable wird aus einem anderen Makro geholt, damit in diesem Beispiel im Headerbereich die Personalnummer hinter dem Text Bearbeiter eingefügt wird, z.B. Bearbeiter: 1234