Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1648to1652
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kopf- und Fußzeile mit Logo als Standard

Kopf- und Fußzeile mit Logo als Standard
12.10.2018 10:58:39
Frank
Guten Morgen,
aktuell stehe ich vor der Herausforderung, dass ich gerne alle Excel-Tabellen mit der identischen Kopf- und Fußzeile haben möchte. Den Trick alle Blätter markieren, in dem richtigen Blatt die angepasste Kopf- und Fußzeile öffnen und OK bestätigen habe ich bereits gemacht. Jedoch wurde das Logo nicht mit übernommen.
Nach folgendem Muster würde ich gerne arbeiten:
1. Excel-Vorlage öffnen und die Kopf- und Fußzeile ist bereits angepasst (habe ich bereits)
2. Neues Blatt einfügen über das PLUS-Symbol und die Kopf- und Fußzeile ist ebenfalls angepasst
3. Neues Blatt generieren (Pivot oder Diagramm z.B.) und die Kopf- und Fußzeile ist bereits angepasst
Ist hier vielleicht ein Nutzer, der mir für 2. und 3. die passenden Möglichkeiten geben kann?
Vielen Dank vorab und schöne Grüße :)
Frank

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopf- und Fußzeile mit Logo als Standard
12.10.2018 15:32:20
fcs
Hallo Frank,
du brauchst dann ja Makros um den Ablauf zu steuern.
Diese Makros musst du in deiner persönlichen Arbeitsmappe speichern. Für optimalen Komfort kannst du diese Makros dann mit Schaltflächen in einem zusätzlichen Menüe verknüpfen oder auf der Menüleiste für den Schnellzugriff einbauen.
Eine vollständig automatische Formatierung des Seitenlayouts neuer Tabellenblätter/Diagrammblätter ist wahrscheinlich via Klassenmodul und Ereignismakros möglich, das ist mir momentan etwas zu aufwendig und halte ich auch nicht für angemessen. Damit würdest du komplett die Kontrolle an den Automatismus abgeben oder man müsste immer Rückfragen einbauen, ob bestimmte Aktionen durchgeführt werden sollen.
Da ist das gezielte Starten der jeweiligen Makros der übersichtlichere Weg.
Bei Tabellenblättern hast du dann 2 Optionen:
1. Laden einer vorhandenen Vorlagedatei mit einem Tabellenblatt (z.Bsp. die Vorlage für das 1. Blatt)
Dies ist der "einfachste" Weg. Ein entsprechendes Makro sieht etwa so aus:
Sub NewSheet_A4hoch_mit_Logo()
Dim objSh As Object, sPfadName$
Set objSh = ActiveSheet
'Pfad und Name der einzufügenden Vorlage-Datei
sPfadName = "Y:\wwdaten\Vorlagen\A4hoch_mit_Logo.xltx"  'Name anpassen!!!
ActiveWorkbook.Sheets.Add after:=objSh, Type:=sPfadName
End Sub
2. Per Makro werden alle erforderlichen Anweisung für das Seiten-Layout ausgeführt.
Hier muss dann die als Logo einzubindende Datei in einem Verzeichnis liegen auf das immer zugegriffen werden kann - z.B. das Verzeichnis in dem die Excel-Vorlage(n) gespeichert sind.
Immer erst ein neues Tabellenblatt einfügen, dann das Makro starten.
Sub Tabellenblatt_A4quer_mit_Logo()
' SeitenLayout_A4quer_mit_Logo Makro
' Formatiert das Seiten-Layout eines Excelblatt in A4-quer mit Logo(Grafik)
Dim strGrafik$
strGrafik = "D:\Test\LOGO_klein.jpg"  'Name anpassen!!!
With ActiveSheet.PageSetup
.LeftHeaderPicture.Filename = strGrafik
'Bildgrösse anpassen
With .LeftHeaderPicture
.Height = 12
.Width = 51
End With
'Texte/Steuerzeichen in Kopf- und Fusszeilen
.LeftHeader = "&G"
.CenterHeader = "Projekt: "
.RightHeader = "&8&F"
.LeftFooter = "&8Erstellt am " & Format(Date, "YYYY-MM-DD")
.CenterFooter = "Druckdatum: &D"
.RightFooter = "Blatt &P von &N"
'Seitenränder
.LeftMargin = Application.CentimetersToPoints(1.8)
.RightMargin = Application.CentimetersToPoints(1.8)
.TopMargin = Application.CentimetersToPoints(2#)
.BottomMargin = Application.CentimetersToPoints(1.5)
.HeaderMargin = Application.CentimetersToPoints(1)
.FooterMargin = Application.CentimetersToPoints(1#)
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape 'Querformat
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = False
.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

Bei Diagramm-Blättern funktioniert nur der Weg über nachträgliches Formatieren des Seiten-Layouts nach dem anlegen des Diagrammblattes.

Sub Diagrammblatt_A4quer_mit_Logo()
' SeitenLayout_A4quer_mit_Logo Makro
' Formatiert das Seiten-Layout eines Excel-Diagrammblatts in A4-quer mit Logo(Grafik)
Dim strGrafik$
Dim shChart As Chart
Set shChart = ActiveSheet
strGrafik = "D:\Test\LOGO_klein.jpg"   'Name anpassen!!!
With shChart
With .PageSetup
'Logo links oben in Kopfzeile einfügen
.LeftHeaderPicture.Filename = strGrafik
'Bildgrösse anpassen
With .LeftHeaderPicture
.Height = 12
.Width = 51
End With
'Texte/Steuerzeichen in Kopf- und Fusszeilen
.LeftHeader = "&G"
.CenterHeader = "Projekt: "
.RightHeader = "&8&F"
.LeftFooter = "&8Erstellt am " & Format(Date, "YYYY-MM-DD")
.CenterFooter = "Druckdatum: &D"
.RightFooter = "Blatt &P von &N"
'Seitenränder
.LeftMargin = Application.CentimetersToPoints(1.8)
.RightMargin = Application.CentimetersToPoints(1.8)
.TopMargin = Application.CentimetersToPoints(2#)
.BottomMargin = Application.CentimetersToPoints(1.5)
.HeaderMargin = Application.CentimetersToPoints(1)
.FooterMargin = Application.CentimetersToPoints(1#)
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape 'Querformat
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.BlackAndWhite = False
.Zoom = 100
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = False
.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 With
End Sub
Bei Pivot-Berichten, hast du 2 Wege:
A: Neues Tabellenblatt aus Vorlage erzeugen (Methode 1) und dann beim Erzeugen des Berichts die Option "in vorhandenem Blatt" wählen.
B: Den Bericht wie gewognt anlegen und dann via Methode 2 das Seitenlayout formatieren.
Zur Anpassung meiner Makros an dein Layout am besten mit dem Makro-Rekorden das ändern des Seitenlayout aufzeichnen und dann in meinem Makro die entsprechenden Abschnitt anpassen. In meinen Makros sind einige Sachen gelöscht/vereinfacht, die der Rekorder aufzeichnet. Sie stören entweder oder sind überflüssig.
Viel Erfolgt bei der Umsetzung auf deine Anforderungen.
LG
Franz
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige