Excel Makro erstellen mit Dateinamen in der Kopfzeile und Seitenzahl in Fußzeile
#1
Hallo zusammen,

nach dem öffnen einer Arbeitsmappe möchte ich über ein Makro die Kopfzeile mit dem Dateinamen und in die Fußzeile mit der aktuellen Seitennummer versehen.

Folgend bin ich dazu vorgegangen:

Ich öffne eine neue Excelarbeitsmappe. Speichere diese unter Mappe1.xlsm.

Starte eine Makroaufzeichnung auf. Diese beinhaltet:

Ich gehe auf RG Ansicht, Seitenlayout, klicke in die Kopfzeile, RG Kopf- und Fußzeile, wähle Dateiname, klicke raus aus der Kopfzeile.

Nun steht in der Kopfzeile Mappe1.xlsm

Nun klicke ich in die Fußzeile, RG Kopf- und Fußzeile, wähle Seitenzahl, klicke raus aus der Fußzeile.

Nun steht dort 1

Jetzt beende ich das Makro.

Nun gehe auf RG Ansicht, Seitenlayout und lösche in der Kopfzeile den Dateinamen und die Seitenzahl in der Fußzeile wieder.

Wähle im RG Ansicht Normal.

Jetzt starte ich das Makro.

Gehe nun auf RG Ansicht, Seitenlayout.

Die Seitenzahlen stehen richtig in der Fußzeile, aber in der Kopfzeile steht nun auf einmal

&[Pfad]&[Seite]&[Seiten] ???? Und nicht der Dateiname der Arbeitsmappe Mappe1.xlsm?

Als ich das Makro aufgezeichnet habe, habe ich 100% den Dateinamen gewählt. Im Seitenlayout stand auch Mappe1.xlsm nun steht hier auf einmal der Pfad zu dem Dokument?

Das Makro habe ich in "Diese Arbeitsmappe" gespeichert. Es heißt: Kopf_und_Fußzeile

Kann mir jemand erklären was hier schief läuft. Die Datei Mappe1.xlsm habe angehängt. Keine Sorge Sie enthält keine Viren.

MFG


Angehängte Dateien Thumbnail(s)
   

.xlsm   Mappe1.xlsm (Größe: 16,44 KB / Downloads: 9)
Antworten Top
#2
Hallo, 19 

nachfolgend ein Beispiel: 21
[attachment=39625]

Tabelle1 ist der CodeName des Tabellenblattes (im VBA-Editor links der Name VOR der Klammer "Tabelle1(Tabelle1)"). Es kommt darauf an, von wo aus du das Makro starten möchtest.

Du könntest auch...
Code:
With ActiveWorkbook.ActiveSheet.PageSetup

...schreiben. Aber das ist ein "Wackelkandidat", denn das geht auf das gerade aktive Workbook und das gerade aktive Tabellenblatt. Also mit Vorsicht zu geniessen.

Weiter Infos zu Kopf- und Fusszeile.
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • ReddDevil
Antworten Top
#3
Danke für deinen Beitrag. So geht es.

Deine Erklärungen konnte ich ehrlich gesagt nicht nachvollzuziehen, da ich absoluter Anfänger in Sachen VBA-Programmierung bin. 
Habe erst damit begonnen Makros aufzuzeichnen.

Dabei ist mir das Problem, dass ich in meiner Frage beschrieben habe aufgefallen.

Wenn ich erst in die Ansicht Seitenlayout gehe, dann ein Makro aufzeichne wo ich immer in das RG Kopf-und Fußzeile klicke, dort in die Kopfzeile den Dateinamen einfüge und die die Fußzeile
die Seitenzahl. Dann das Makro beende.

Lösche die Kopfzeile mit dem Dateinamen und die Seitenzahl in der Fußzeile wieder, starte nun das Makro.
Schon steht wieder in der Kopfzeile der &[Pfad]&[Seite]&[Seiten] => C:\Users\test\Desktop12
(sieht für mich wie der Dateipfad aus)

Kannst du mir erklären, woran das liegt? Oder ist das einfach ein Programmierfehler?
Bitte so erklären, dass es auch ein Anfänger in VBA versteht 21

Gruss
Antworten Top
#4
Hallo,


Zitat:Habe erst damit begonnen Makros aufzuzeichnen.



wenn du dich ernsthaft mit dem Thema Makros beschäftigen möchtest, solltest du nicht mit dem Makro-Rekorder arbeiten. Der erstellt nicht wirklich Markros, sondern eher eine Art Logdatei.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#5
Moin!
Es gibt diverse Beispiele, in denen der Makrorekorder "falsch" aufzeichnet.
Dies tritt häufig auf, wenn ein Text aufgezeichnet wird.

Bei meinem Excel 365 wird übrigens korrekt 
.CenterHeader = "&F"
aufgezeichnet, denkbar, dass MS hier nachgebessert hat.

Auch erstaunlich, dass das Makro nur korrekt funktioniert, wenn ich die .PrintCommunication nicht deaktiviere.

Wenn Du alles überflüssige löscht, bleibt dann eben folgendes übrig:
Sub Kopfzeile_und_Fußzeile()
  With ActiveSheet.PageSetup
    .CenterHeader = "&F"  'Dateiname 
    .CenterFooter = "&P"  'Seitenzahl 
  End With
End Sub

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • ReddDevil
Antworten Top
#6
Hallo, 19 

auf den Makrorekorder kannst du dich nicht verlassen. Aber er ist in meinen Augen doch sehr wichtig. Du solltest dir nur angewöhnen etwas anders damit umzugehen. 21

Der Makrorekorder hilft dir in vielen Fällen herauszufinden, WIE ein Befehl heisst. Exclamation  

Du zeichnest also den Schritt auf und gehst dann mit dem entsprechenden Suchbegriff in einer Suchmaschine deiner Wahl ins Netz.

Und dann kann man ja auch noch in einem Forum fragen... 05
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • ReddDevil
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste