PDA

Vollständige Version anzeigen : In Kopfzeile auf Zelle verweisen


Office-Christoph
01.07.2015, 12:47
Hallo!

Ich möchte in der Kopfzeile auf eine bestimmte Zelle verweisen. Konkret geht es darum, dass ich für jedes Monat ein Tabellenblatt habe (Jänner bis Dezember). In Blatt 13 steht ein Text in einer bestimmten Zelle. Ich möchte, dass in jedem Monatsblatt in der Kopfzeile dieser (variable) Text steht.

Ich bin exakt nach dieser (https://support.microsoft.com/en-us/kb/273028/de) Anleitung vorgegangen, leider passiert nichts.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveSheet.PageSetup.LeftFooter = Range("a1").Value
End Sub

Wo könnte hier mein Fehler liegen?

Schöne Grüße

Christoph

xlph
01.07.2015, 13:06
Hallo,

Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveSheet.PageSetup.LeftFooter = Worksheets("NameBlatt13").Range("a1").Value
End Sub

Office-Christoph
01.07.2015, 14:12
Hallo!

Danke für deine Antwort!

Es druckt mir einfach keine Kopfzeilen aus. Mein Code aus dem ersten Posting bezieht sich ja nur auf ein Tabellenblatt, dein Code auf alle Tabellenblätter (mit Eingabe der zu referenzierenden Zelle in Sheet 13). Beides klappt bei mir nicht.

Ich vermute, dass ich das VBA-Skript falsch eintrage. Exakt den genauen Anweisungen wie auf dem Link kann ich nicht folgen, da es sich um eine ältere Version von Excel handelt.

Ich gehe auf "DieseArbeitsmappe", dort Rechtsklick, erstelle ein Modul und füge den Code an. Das ist vermutlich falsch.

Das wäre die Datei (Name geändert):

https://dl.dropboxusercontent.com/u/89814792/Stunden.xlsm

Kimba06
01.07.2015, 14:23
Hallo Christoph,
versuch es mal so:Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveSheet.PageSetup.LeftHeader = Range("a1").Value
End Sub
Habe Deinen Code mal auf BeforeSave gesetzt. Wenn Du speicherst und anschließend die Seitenansicht öffnest, so hast Du den Inhalt von a1 im linken Kopfbereich.
Gruss Achim

Office-Christoph
01.07.2015, 14:40
Hallo Achim!

Auch dir danke!

Leider führt das (bei mir) nicht zum gewünschten Ergebnis bzw. zu gar keinem.

Hier mal ein Screenshot:

https://dl.dropboxusercontent.com/u/89814792/screenshot.PNG

Die Frage ist, ob ich das richtig eingefügt habe.

Kimba06
01.07.2015, 14:52
Hallo Christoph,
nein Du hast es falsche eingefügt.
Gehe im Project Explorer auf Diese Arbeitmappe und stelle dann um von allgemein auf Mein Workbook (genau wie Du es in '1 ja schon beschrieben hast) und auf Before Print. Füge dort das Script ein und es sollte funktionieren.
Wenn Du an der richtigen Stelle bist, sind die erste und letzte Zeile bereits vorhanden. Du fügst also nur die mittlere Code Zeile ein.
Gruss Achim

Office-Christoph
01.07.2015, 18:48
Vielen herzlichen Dank, ich weiß die Mühen sehr zu schätzen! Nun läuft es nachdem ich das Script richtig eingepflegt habe.

Hättest du noch eine Idee wie ich folgende Aufgabenstellung lösen könnte. Ich habe ja 12 Tabellenblätter (12 Monate) und ein Stammdatenblatt (Nr. 13). Nun möchte ich im Stammdatenblatt nur die Jahreszahl ändern und automatisch sollte in jeder der 12 Kopfzeilen dann jeweils stehen: Jänner 2015, Februar 2015, März 2015 etc.

PS: Was glaube ich sicher nicht geht, ist, dass man ein Format vom Stammblatt übernimmt in die Kopfzeilen. Dass man also z.B. einen Fettdruck der Stammzelle in die Kopfzeilen übernimmt.

Office-Christoph
01.07.2015, 19:56
Ich habe es jetzt selber hinbekommen. Wenn man nun im Blatt "Stammdaten" die Jahreszahl eingibt, dann wird in jedem Tabellenblatt die obere, rechte Kopfzeile automatisch angepasst. Im Tabellenblatt "Jänner" auf "Jänner 2015" usw.

Leider kann man keine Formate referenzieren, zumindest kriege ich es nicht hin.

Schöne Grüße

Christoph

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Blatt As Worksheet
For Each Blatt In ThisWorkbook.Worksheets
Select Case Blatt.Name
Case "Jänner"
Blatt.PageSetup.RightHeader = Worksheets("Matrix").Range("F1").Value & " " & Worksheets("Stammdaten").Range("H1").Text
Case "Februar"
Blatt.PageSetup.RightHeader = Worksheets("Matrix").Range("F2").Value & " " & Worksheets("Stammdaten").Range("H1").Text
Case "März"
Blatt.PageSetup.RightHeader = Worksheets("Matrix").Range("F3").Value & " " & Worksheets("Stammdaten").Range("H1").Text
Case "April"
Blatt.PageSetup.RightHeader = Worksheets("Matrix").Range("F4").Value & " " & Worksheets("Stammdaten").Range("H1").Text
Case "Mai"
Blatt.PageSetup.RightHeader = Worksheets("Matrix").Range("F5").Value & " " & Worksheets("Stammdaten").Range("H1").Text
Case "Juni"
Blatt.PageSetup.RightHeader = Worksheets("Matrix").Range("F6").Value & " " & Worksheets("Stammdaten").Range("H1").Text
Case "Juli"
Blatt.PageSetup.RightHeader = Worksheets("Matrix").Range("F7").Value & " " & Worksheets("Stammdaten").Range("H1").Text
Case "August"
Blatt.PageSetup.RightHeader = Worksheets("Matrix").Range("F8").Value & " " & Worksheets("Stammdaten").Range("H1").Text
Case "September"
Blatt.PageSetup.RightHeader = Worksheets("Matrix").Range("F9").Value & " " & Worksheets("Stammdaten").Range("H1").Text
Case "Oktober"
Blatt.PageSetup.RightHeader = Worksheets("Matrix").Range("F10").Value & " " & Worksheets("Stammdaten").Range("H1").Text
Case "November"
Blatt.PageSetup.RightHeader = Worksheets("Matrix").Range("F11").Value & " " & Worksheets("Stammdaten").Range("H1").Text
Case "Dezember"
Blatt.PageSetup.RightHeader = Worksheets("Matrix").Range("F12").Value & " " & Worksheets("Stammdaten").Range("H1").Text
Case Else
'do nothing
End Select
Next
End Sub