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 &:stuck\_out\_tongue\_winking\_eye: von &N"
End With
End Sub
Jetzt will ich
- in den CenterFooter ein Logo einbauen (möglichst so wie oben eingefügte Daten auch in Tabelle1 hinterlegt und nicht auf der Festplatte)
- 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:
- 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).
- 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 &: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 &: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 &:stuck\_out\_tongue\_winking\_eye: von &N"
End With
Next sh
End Sub
Gruß
Reinhard
Welche Excel version?
- 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 &: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