krausens-online.de

Suchen
Zum Inhalt springen
  • Startseite
  • Computer
    • Computer allgmein
    • Windows
    • Windows-Server
    • Linux
    • Software
    • Web
    • MacOS
  • Handarbeit
  • Foto
  • Geocaching
  • Weiteres
    • Camping
    • Über uns
  • kurz notiert
  • Impressum
Excel

Excel: dynamische Kopfzeile mit VBA – Teil1/4

7. Februar 2016 Robert Kraus

Im vorliegenden Fall sollte für eine Excel-Datei mit 50 Tabellen eine Kopfzeile mit Überschrift und Logo versehen werden. Was das Ganze etwas tricky gemacht hat, waren unterschiedliche Inhalte in der Kopfzeile pro Tabellenblatt. Die Lösung: durch VBA realisierte, dynamische Kopfzeile.

Als Basis verwende ich die Datei aus dem Beitrag Excel – Kopf-/Fußzeile mit Grafikmit dem eingebundenen Logo, aber keinen weiteren Informationen in Kopf-/undFußzeile
In VBA kann man die Kopfzeile über den Befehl „PageSetup“ ansprechen.
Die jeweils 3 Blöcke der Kopf-/und Fußzeile können dann über die Parameter

Visual Basic
1
2
3
4
5
6
7
.LeftHeader =
.CenterHeader =
.RightHeader=
bzw.
.LeftFooter =
.CenterFooter =
.RightFooter=

angesprochen werden.
Ok; Zeit das ganze mal umzusetzen.
Zuerst nehme ich in einem Tabellenblatt einen Bereich, den ich sicher nicht nutzen werde (der also ausserhalb des Druckbereiches liegt). In meinem Beispiel ist der nichtgenutzte Bereich ab Spalte M.
In Zelle M2 beginne ich mit der Beschreibung und in Zelle N2 steht dann der anzudruckende Text.
excel-kopf_101
Jetzt muss der Text noch in die Kopfzeile gebracht werden.
Dazu öffne ich den VBA-Editor ([ALT]+[F11]), klicke doppelt auf „Tabelle 1“ und füge folgende Anweisung ein.

Visual Basic
1
2
3
4
5
6
Private Sub dynkopf()
  With ActiveSheet.PageSetup
        .LeftHeader = Range("N2")
  End With
 
End Sub

excel-kopf_102
Zu beachten ist jetzt, dass die Excel-Datei jetzt als „.xslm“ abgespeichert werden muss, damit die Makro-Funktionen erhalten bleiben. Dies wird, sollte es noch eine normale „.xslx“-Datei sein, auch als Hinweis ausgegeben.
excel-kopf_103
Wird nach dem Speichern jetzt der Play-Button im VBA-Editor gedrückt
excel-kopf_102a
wird in der Kopfzeile im linken Feld der Text aus der Zelle N2 angegeben. Alle anderen Felder der Kopf-/Fußzeile bleiben von der Aktion aber ausgeschlossen, denn im VBA-Code wird explizit das Feld „.LeftHeader“ angesprochen.
excel-kopf_102b
Funktioniert. Nächster Schritt
Da es eine Überschrift ist, soll diese natürlich auch etwas auffälliger gestaltet werden. Meine Wahl fällt auf die Schriftgröße „24“ und die Schriftart „Arial“ in „Fettschrift“.
Den VBA-Code wird dementsprechend ergänzt

Visual Basic
1
2
3
4
5
6
Private Sub dynkopf()
  With ActiveSheet.PageSetup
        .LeftHeader = "&""ARIAL,Fett""&24" & Range("N2")
  End With
 
End Sub

excel-kopf_104
Und ergibt als Resultat
excel-kopf_105
Passt:
Im nächsten Beitrag wird die Kopfzeile mehrzeilig.

dynamischdynamische KopfzeileExcelFußzeileGrafikKopfzeileLogoVBA

Beitrags-Navigation

Vorheriger BeitragExcel – Kopf-/Fußzeile mit GrafikNächster BeitragExcel: dynamische Kopfzeile mit VBA – Teil2/4 (mehrzeilig)

Unser Familienblog

Kategorien

Neueste Beiträge

  • BananaPi Dallas 1820 (2022)
  • BananaPI System auf SSD
  • BananaPi (Reanimation 2022)
  • Debian inkl. Docker auf FW-7543B (Teil2)
  • Debian inkl. Docker auf FW-7543B (Teil1)

Blogroll

  • Stammtisch der LUG Mitterteich
  • PCFreak
  • Martin Klier (EN)
  • ITNator.net

Links

  • LinuxUserGroup Mitterteich

Schlagwörter

  • Arch
  • Backup
  • BackupPC
  • bash
  • bcdedit
  • berechnen
  • Bootmenü
  • Caravan
  • cmd
  • Datum
  • Datumsberechnung
  • Debian
  • dynamisch
  • dynamische Kopfzeile
  • Excel
  • Exchange
  • for
  • Fußzeile
  • Grafik
  • Hardlinks
  • häkeln
  • Installation
  • konsole
  • Kopfzeile
  • Linux
  • Logo
  • löschen
  • Mail
  • Management-Shell
  • Microsoft
  • MySQL
  • Raspberry
  • Raspbian
  • Restore
  • robocopy
  • rsync
  • Shell
  • Sicherung
  • Systemabbild
  • VBA
  • Windows
  • Windows 7
  • Windows 8
  • Wohnwagen
  • Word

Archive

  • Impressum
Stolz präsentiert von WordPress