Deutsches Excel zeichnet Schrott auf beim Makro aufzeichnen von Kopf- und/oder Fusszeile

lars-schlageter-autor
Hallo, hier schreibt Lars. Dipl-Ing. Ingenieurinformatik (FH). Geprüfter (und begeisterter) Webmaster. Ebenso begeisterter Windows-, Apple-, und Office-User. Ich schreibe über alle möglichen Themen rund um IT. Mehr über mich erfährst du hier: Über mich. Danke für deinen Besuch!

Hoppla. Da will ich doch mal schnell zeigen, wie einfach man ein Makro aufzeichnen kann, das Kopf- und Fusszeile automatisch beschriftet und dann kommt nur Schrott raus? Das Makro schreibt zwar irgendwas rein, aber überhaupt nicht das, was aufgezeichnet wurde.

Nach einiger Recherche fand ich die Lösung: Microsoft hat gepatzt. Aufgezeichnet werden die englischen Kürzel. Verwendet werden müssen aber die deutschen. Zumindest wenn man ein deutsches Excel hat, was ziemlich viele von uns haben dürften. Ganz blöd ist, dass die englischen und deutschen Kürzel verschiedene Bedeutung haben, was das Chaos verursacht.

Der folgende Code (Vielen Dank an rogstar aus dem Forum von Office-Lösungen…)

    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = "&Z" & Chr(10) & "&F"
        .CenterFooter = "Seite &P von &N"
        .RightFooter = "Druck: &D-&T"
    End With

…erzeugt…

  • Links: Laufwerk, Pfad, Zeilenumbruch und Dateiname (bzw. die tatsächlichen Werte)
  • Mitte: Seite 1 von 1 (bzw. die tatsächlichen Werte)
  • Rechts: Druck: Datum – Uhrzeit

Daraus lässt sich eine Tabelle erstellen mit den zu verwendenden Werten:

&ADateiname
&ZPfad der Excel-Datei
&FDateiname der Excel-Datei
&PAktuelle Seite der Excel-Tabelle
&NGesanmtseitenzahl der Excel-Tabelle
&DAktuelles Datum
&TAktuelle Uhrzeit

Sollen wir testen, ob es funktioniert? Lass uns das folgende Makro probieren:

Sub Varcheck()
    With ActiveSheet.PageSetup
        .BottomMargin = Application.InchesToPoints(3.1496062992126)
        .LeftFooter = "Dateiname: &A" & Chr(10) & "Pfad: &Z" & Chr(10) & "Dateiname: &F" & Chr(10) & "Seite: &P" & Chr(10) & "Gesamtseitenzahl: &N" & Chr(10) & "Datum: &D" & Chr(10) & "Uhrzeit: &T"
    End With
End Sub

Die LeftFooter-Anweisung schreibt eine Fusszeile, die alle Variablen aus der Tabelle mit Zeilenumbrüchen getrennt in die Fusszeile schreibt. Damit diese riesige Fusszeile genügend Platz hat, wird mit der BottomMargin-Anweisung ein gross genuger Fussabstand gesetzt.

Fazit: Makro für Kopf- oder Fusszeile aufzeichnen in Excel

Ohne rudimentäre VBA (Visual Basic for Application) Kenntnisse geht nichts. Zumindest bei den Kopf- und Fusszeilen. Du solltest wissen, wie Du ein Makro bearbeiten kannst.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.