Zwei Fragen zu Footer-Makro

Hallo zusammen!

Ich komm mal wieder nicht weiter…
Folgendes Makro für die gesamte Arbeitsmappe läuft perfekt:

Private Sub Workbook\_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With ActiveSheet.PageSetup
.LeftHeader = "&""Verdana,Fett""&8xXx"
.CenterHeader = "&""Verdana,Fett""&8xXx" & Chr(10) & Tabelle1.[B1]
.RightHeader = "&""Verdana,Fett""&8xXx " & Tabelle1.[B2]
.LeftFooter = "&""Verdana""&8© xXx" & Chr(10) & "www.xXx.de"
.RightFooter = "&""Verdana""&8Seite &amp:stuck\_out\_tongue\_winking\_eye: von &N"
End With
End Sub

Jetzt will ich

  1. in den CenterFooter ein Logo einbauen (möglichst so wie oben eingefügte Daten auch in Tabelle1 hinterlegt und nicht auf der Festplatte)
  2. im RightFooter will ich zusätzlich vor die Seitenzahlen den Wert aus A1 und B1 einbauen. Jedoch pro Tabellenblatt nur die Werte aus der jeweilgen Tabelle, also nicht gültig für die gesamte Arbeitsmappe.

Vielen Dank für hilfreiche Tipps!

LG
wurschtbrot

Hallo wurschtbrot,

ich bin zwar nicht so fit/x wie Reinhard, aber ich würde’s so zu lösen versuchen:

  1. aus

With ActiveSheet.PageSetup

wird

For each sh in ActiveWorkbook
  With sh.PageSetup

und natürlich muß unten entsprechend angepaßt werden (Next sh in die Zeile vor End With).

  1. Auf die Werte aus A1 und B1 kann man in der obengenannten Schleife mit

sh.Cells(1,2)

zugreifen. Wie man auf ein Logo zugreift, weiß ich nur sicher von Word. Dort geht es mit der Shapes- bzw. InlineShapes-Auflistung. Wie das bei Excel heißt, konnte ich auf die Schnelle nicht herausfinden.

Gruß

Markus

Hy und danke!
Sorry, das ist zwar ein lieb gemeinter Tipp, aber mir immer noch zu hoch.
Jetzt sieht das Makro so aus:

Private Sub Workbook\_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
For Each sh In ActiveWorkbook
With sh.PageSetup
.LeftHeader = "&""Verdana,Fett""&8xXx"
.CenterHeader = "&""Verdana,Fett""&8xXx" & Chr(10) & Tabelle1.[B1]
.RightHeader = "&""Verdana,Fett""&8xXx " & Tabelle1.[B2]
.LeftFooter = "&""Verdana""&8© xXx" & Chr(10) & "www.xXx.de"
.RightFooter = "&""Verdana""&8Seite &amp:stuck\_out\_tongue\_winking\_eye: von &N"
Next sh
End With
End Sub

Wo genau platziere ich jetzt das sh.Cells(keineAhnung)?

DANKE!

Hi wurschtbrot,

dort, wo Du den Wert der Zelle A1 haben willst, kommt hin

ActiveSheet.Cells(1,1).Value

dort, wo Du den Wert der Zelle B1 haben willst, kommt hin

AchtiveSheet.Cells(1,2).Value

Gruß

Markus

Hy!
Jetzt siehts so aus und funktioniert nicht:

Private Sub Workbook\_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
For Each sh In ActiveWorkbook
With sh.PageSetup
.LeftHeader = "&""Verdana,Fett""&8xXx"
.CenterHeader = "&""Verdana,Fett""&8xXx" & Chr(10) & Tabelle1.[B1]
.RightHeader = "&""Verdana,Fett""&8xXx " & Tabelle1.[B2]
.LeftFooter = "&""Verdana""&8© xXx" & Chr(10) & "www.xXx.de"
.RightFooter = "&""Verdana""&8ActiveSheet.Cells(1,1).Value & ActiveSheet.Cells(1,2).Value & Seite &amp:stuck\_out\_tongue\_winking\_eye: von &N"
Next sh
End With
End Sub

Ich peil’s halt nicht.
So ein *~@³§$%…

LG
Markus

Jetzt siehts so aus und funktioniert nicht:

Hallo Markus,

benutze Option Explicit.
Benutze Einrückungen, 3-4 Leerzeichen, geht autom. per Tab.
Hier in w-w-w benutze den pre-tag, wird unterhalb des Eingabefensters beim Eingeben erklärt.

Lassenw wir das Logo erstmal weg.
Klappt denn dieser Code, wenn nicht was klappt nicht?

Option Explicit
'
Private Sub Workbook\_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
With sh.PageSetup
 .LeftHeader = "&""Verdana,Fett""&8xXx"
 .CenterHeader = "&""Verdana,Fett""&8xXx" & Chr(10) & Tabelle1.[B1]
 .RightHeader = "&""Verdana,Fett""&8xXx " & Tabelle1.[B2]
 .LeftFooter = "&""Verdana""&8© xXx" & Chr(10) & "www.xXx.de"
 .RightFooter = "&""Verdana""" & sh.Cells(1, 1).Value & sh.Cells(1, 2).Value & "Seite &amp:stuck\_out\_tongue\_winking\_eye: von &N"
End With
Next sh
End Sub

Gruß
Reinhard

Welche Excel version?

  1. in den CenterFooter ein Logo einbauen (möglichst so wie
    oben eingefügte Daten auch in Tabelle1 hinterlegt und nicht
    auf der Festplatte)

Hallo Markus,

bitte immer die Excelversion angeben, dann müßte ich jetzt nicht nachfragen wegen:

http://www.it-service-ruhr.de/Tipps/tipps_excel_24.htm

Wenn das bei dir geht, so zeichne mal ein akro auf und zeige den Code wenn du ihn nicht selbst ihn dein Makro einbauen kannst.

Gruß
Reinhard

Logo / Grafik in Kopfzeile
hallo Interessierte,

so scheint es zu gehen auch vor Excel2002:

Zitat:
Excel bietet beim Erstellen von Kopf- und Fußzeilen neben den
Standardfeldern wie Datum oder Seitenzahl auch die Möglichkeit an,
beliebig viel Text einzugeben. Grafiken sind dagegen im Bereich der
Kopf- und Fußzeilen nicht möglich. Wenn Sie trotzdem auf jeder Seite
einer Tabelle ein Bild oder Firmenlogo sehen wollen, können Sie das
nur auf einem Umweg erreichen.

Zunächst fügen Sie das gewünschte Bild in die erste Zelle (A1) ein.
Anschließend richten Sie die Höhe der ersten Zeile nach der Höhe der
Grafik aus bzw. verändern Sie die Größe der Grafik so, dass sie in
die 1. Zeile passt. Der Trick ist nun, diese erste Zeile und die
Kopfzeile übereinander darzustellen.

Dazu gehen Sie im Datei - Seite einrichten ins Register Seitenränder.
In den Feldern Oben und Kopfzeile muss jeweils der selbe Wert stehen.

Jetzt müssen Sie dafür sorgen, dass die erste Zeile, in der sich ja
das Logo befindet, auf jeder Seite der Tabelle auftaucht. Dafür
wechseln Sie ins Register Tabelle.

Dort geben Sie dann im Feld Wiederholungszeilen den Wert „$1:blush:1“ ein.
Das bedeutet, dass Excel die erste Zeile der Tabelle am Kopf jedes
Tabellenblatts wiederholt.

Richten Sie jetzt noch im Register Kopfzeile/Fußzeile" eine Kopfzeile
ein, und achten Sie dabei darauf, dass der Text der Kopfzeile nicht
der Grafik in die Quere kommt.

Quelle des Zitats:
http://www.office-loesung.de/ftopic29672_0_0_asc.php…

Gruß
Reinhard

Hallo Reinhard,

Hier in w-w-w benutze den pre-tag, wird unterhalb des
Eingabefensters beim Eingeben erklärt.

Hatte ich doch bei jedem Code gemacht!?

Klappt denn dieser Code, wenn nicht was klappt nicht?

Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,
Cancel As Boolean)
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
With sh.PageSetup
.LeftHeader = „&“„Verdana,Fett“"&8xXx"
.CenterHeader = „&“„Verdana,Fett“"&8xXx" & Chr(10) &
Tabelle1.[B1]
.RightHeader = „&“„Verdana,Fett“"&8xXx " & Tabelle1.[B2]
.LeftFooter = „&“„Verdana“"&8© xXx" & Chr(10) &
www.xXx.de
.RightFooter = „&“„Verdana“"" & sh.Cells(1, 1).Value &
sh.Cells(1, 2).Value & „Seite &amp:stuck_out_tongue_winking_eye: von &N“
End With
Next sh
End Sub

Dieser Code klappt hervorragend. Nur würde ich gerne den RightFooter auch in Schriftgröße 8 haben.

Vielen Dank!

LG
Markus

Hallo Markus,

Hier in w-w-w benutze den pre-tag, wird unterhalb des
Eingabefensters beim Eingeben erklärt.

Hatte ich doch bei jedem Code gemacht!?

nein, bzw. nützt der pre-Tag nix wenn der Code nicht durch Leerzeichen eingerückt ist.

Dieser Code klappt hervorragend. Nur würde ich gerne den
RightFooter auch in Schriftgröße 8 haben.

Ich habe mich jetzt nicht mit Schriftgrößen usw. beschäfigt.

Zeichne mal ein Makro auf während du da den Rightfooter manuell formatierst wie du willst, Seitenzahlen usw… Da wo später der Inhalt von Zelle A1 hin soll schreibste „ZA1“ rein usw.
Dann zeige mal den Code.

Gruß
Reinhard

Hallo Reinhard,

Zeichne mal ein Makro auf während du da den Rightfooter
manuell formatierst wie du willst, Seitenzahlen usw… Da wo
später der Inhalt von Zelle A1 hin soll schreibste „ZA1“ rein
usw.
Dann zeige mal den Code.

Hier isser (verstehen tu ich aber nix):

Sub Makro1()
'
' Makro1 Makro
'

'
 ActiveWindow.View = xlPageLayoutView
 ActiveWindow.SmallScroll Down:=21
 ActiveWindow.ScrollRow = 21
 ActiveWindow.ScrollRow = 20
 ActiveWindow.ScrollRow = 19
 ActiveWindow.ScrollRow = 18
 ActiveWindow.ScrollRow = 16
 ActiveWindow.ScrollRow = 15
 With ActiveSheet.PageSetup
 .LeftHeader = ""
 .CenterHeader = ""
 .RightHeader = ""
 .LeftFooter = ""
 .CenterFooter = ""
 .RightFooter = "&8ZA1" & Chr(10) & "Seite &S von &A"
 .LeftMargin = Application.InchesToPoints(0.7)
 .RightMargin = Application.InchesToPoints(0.7)
 .TopMargin = Application.InchesToPoints(0.787401575)
 .BottomMargin = Application.InchesToPoints(0.787401575)
 .HeaderMargin = Application.InchesToPoints(0.3)
 .FooterMargin = Application.InchesToPoints(0.3)
 .Zoom = 100
 .PrintErrors = xlPrintErrorsDisplayed
 .OddAndEvenPagesHeaderFooter = False
 .DifferentFirstPageHeaderFooter = False
 .ScaleWithDocHeaderFooter = True
 .AlignMarginsHeaderFooter = True
 .EvenPage.LeftHeader.Text = ""
 .EvenPage.CenterHeader.Text = ""
 .EvenPage.RightHeader.Text = ""
 .EvenPage.LeftFooter.Text = ""
 .EvenPage.CenterFooter.Text = ""
 .EvenPage.RightFooter.Text = ""
 .FirstPage.LeftHeader.Text = ""
 .FirstPage.CenterHeader.Text = ""
 .FirstPage.RightHeader.Text = ""
 .FirstPage.LeftFooter.Text = ""
 .FirstPage.CenterFooter.Text = ""
 .FirstPage.RightFooter.Text = ""
 End With
 ActiveWindow.ScrollRow = 13
 ActiveWindow.ScrollRow = 10
 ActiveWindow.ScrollRow = 9
 ActiveWindow.ScrollRow = 8
 ActiveWindow.ScrollRow = 7
 ActiveWindow.ScrollRow = 6
 ActiveWindow.ScrollRow = 5
 ActiveWindow.ScrollRow = 4
 ActiveWindow.ScrollRow = 3
 ActiveWindow.ScrollRow = 2
 ActiveWindow.ScrollRow = 1
 Range("A1").Select
End Sub

Vielen Dank!

LG Markus

Servus Reinhard.

Danke für deine Hinweise!

Ich würde gerne in der Arbeitsmappe eine Grafik hinterlegen (Sinn: es wird nicht auf die HDD zugegriffen und andere Benutzer können ebenso damit arbeiten), die dann im Footer jedes Tabellenblattes per Makro angezeigt wird.
Version: Excel 2007.

Geht das überhaupt?

LG
Markus

Version: Excel 2007.

Geht das überhaupt?

Hallo Markus,

mache bitte das was ich hier schrieb:

/t/zwei-fragen-zu-footer-makro/5725427/7

Gruß
Reinhard

Hallo Reinhard,

mache bitte das was ich hier schrieb:

/t/zwei-fragen-zu-footer-makro/5725427/7

here we go:

Sub Makro1()
'
' Makro1 Makro
'

'
 ActiveSheet.PageSetup.CenterFooterPicture.Filename = \_
 "I:\logo.jpg"
 With ActiveSheet.PageSetup.CenterFooterPicture
 .Height = 24.75
 .Width = 68.25
 End With
 With ActiveSheet.PageSetup
 .PrintTitleRows = ""
 .PrintTitleColumns = ""
 End With
 ActiveSheet.PageSetup.PrintArea = ""
 With ActiveSheet.PageSetup
 .LeftHeader = ""
 .CenterHeader = ""
 .RightHeader = ""
 .LeftFooter = ""
 .CenterFooter = "&G"
 .RightFooter = ""
 .LeftMargin = Application.InchesToPoints(0.708661417322835)
 .RightMargin = Application.InchesToPoints(0.708661417322835)
 .TopMargin = Application.InchesToPoints(0.78740157480315)
 .BottomMargin = Application.InchesToPoints(0.78740157480315)
 .HeaderMargin = Application.InchesToPoints(0.31496062992126)
 .FooterMargin = Application.InchesToPoints(0.31496062992126)
 .PrintHeadings = False
 .PrintGridlines = False
 .PrintComments = xlPrintNoComments
 .PrintQuality = 600
 .CenterHorizontally = False
 .CenterVertically = False
 .Orientation = xlPortrait
 .Draft = False
 .PaperSize = xlPaperA4
 .FirstPageNumber = xlAutomatic
 .Order = xlDownThenOver
 .BlackAndWhite = False
 .Zoom = 100
 .PrintErrors = xlPrintErrorsDisplayed
 .OddAndEvenPagesHeaderFooter = False
 .DifferentFirstPageHeaderFooter = False
 .ScaleWithDocHeaderFooter = True
 .AlignMarginsHeaderFooter = True
 .EvenPage.LeftHeader.Text = ""
 .EvenPage.CenterHeader.Text = ""
 .EvenPage.RightHeader.Text = ""
 .EvenPage.LeftFooter.Text = ""
 .EvenPage.CenterFooter.Text = ""
 .EvenPage.RightFooter.Text = ""
 .FirstPage.LeftHeader.Text = ""
 .FirstPage.CenterHeader.Text = ""
 .FirstPage.RightHeader.Text = ""
 .FirstPage.LeftFooter.Text = ""
 .FirstPage.CenterFooter.Text = ""
 .FirstPage.RightFooter.Text = ""
 End With
End Sub

Lieben Gruß
Markus