Ich würde gerne die Bezeichnung meiner einzelnen Tabellen der xls-Datei in die Kopfzeile eintragen oder in Formeln verwenden. Letzteres geht mit Zelle(„Dateiname“; A1), aber umgekehrt habe ich keine Möglichkeit entdeckt. Auch würde ich gerne die Gestaltung der Kopfzeile einem Makro überlassen, aber irgendwie glaube ich, ist der Kopf- und Fußzeilenbereich für die Makros unerreichbar.
Es sei denn, wer weiß was.
Es ist doch so einfach!
Hallo Rudi,
ich wundere mich immer wieder, warum so häufig das einfachste Instrument, das es bei der Suche nach bestimmten VBA-Objekten gibt, übersehen wird: die Makro-Aufzeichnung!
Du hättest innerhalb von 30 Sekunden die folgende Lösung gehabt:
With ActiveSheet.PageSetup
.LeftHeader = "&8Kopf links"
.CenterHeader = "&12Kopf Mitte"
.RightHeader = "&16Kopf rechts"
.LeftFooter = "&""Courier New,Regular""Fuß links"
.CenterFooter = "&""Times New Roman,Regular""Fuss Mitte"
.RightFooter = "Fuß rechts, &:stuck\_out\_tongue\_winking\_eye:"
End With 'ActiveSheet.PageSetup
Das &8, &12 und &16 steht dabei übrigens für die Schriftgröße, das &:stuck_out_tongue_winking_eye: für die Seitenzahl. Die Schriftart erkennt man ja so.
Randeinstellungen und all so´n Kram macht man analog. Das geht alles aus der Aufzeichnung hervor. Und statt „Fuß Mitte“ den Titel des Arbeitsblattes einzusetzen ist aus VBA-Sicht kein Problem, kann aber ja auch direkt mit aufgezeichnet werden (&F=File, &A=Tabelle).
Das sollte Dir nun weiterhelfen.
Ich selbst habe das manchmal benutzt, wenn ich Dokumente mit mehreren Blättern hatte, deren Kopf- und Fußzeilendefinitionen sich immer mal wieder änderten, aber insgesamt einheitlich sein sollten:
For s = 0 to 9
With Sheets(s).PageSetup
.LeftHeader = "Kopf links"
.CenterHeader = "Kopf Mitte"
.RightHeader = "Kopf rechts"
.LeftFooter = "Fuß links"
.CenterFooter = "Fuß Mitte"
.RightFooter = "Fuß rechts"
End With 'Sheets(s).PageSetup
Next s
Kristian
Lieber Kristian,
ich hab es ausprobiert, Dein erstes Beispiel hat mir folgendes gezeigt:
In die entsprechende Stelle &[Register] schreiben, und schon steht das richtige Wort, „Tabelle 1“ da.
Nur mit &F oder &A kann ich nichts anfangen. Geht irgend wie nicht.
Das untere Beispiel, das mit for s = 0 to 9 beginnt, funktioniert nicht. Ich bekomme eine Fehlermeldung: Laufzeitfehler ‚9‘: Index außerhalb des gültigen Bereichs.
Was kann da schief gelaufen sein?
Kannst Du mir einen Tip geben, wie ich das alles lernen kann. Gibt es da eine gute Seite?
LG, Rudi.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Lieber Kristian,
ich hab es ausprobiert, Dein erstes Beispiel hat mir folgendes
gezeigt:
In die entsprechende Stelle &[Register] schreiben, und schon
steht das richtige Wort, „Tabelle 1“ da.
Nur mit &F oder &A kann ich nichts anfangen. Geht irgend wie
nicht.
Hallo Rudi,
vielleicht gibt es hier einen Unterschied zwischen der Englischen und der Deutschen Fassung. Starte einfach mal die Makro-Aufzeichnung und gehe nochmal auf die Kopf/Fußzeilen-Einstellungen. Dort trägst Du alle Felder ein, die verfügbar sind, drückst Okay und beendest die Aufzeichung. Im VBA-Editor kannst Du dann ja nachgucken, was Du eintragen mußt. Ich nehme an, daß z.B. das „&A“ bei Dir „&Register“ ist.
Das untere Beispiel, das mit for s = 0 to 9 beginnt,
funktioniert nicht. Ich bekomme eine Fehlermeldung:
Laufzeitfehler ‚9‘: Index außerhalb des gültigen Bereichs.
Was kann da schief gelaufen sein?
Das Beispiel ging ja davon aus, daß auch wirklich 10 Tabellen in dem Dokument existieren (0 bis 9). Du mußt die Obergrenze entweder anpassen oder einfach statt der 9 „Sheets.Count - 1“ schreiben. Das sollte dann gehen und alle Tabellen (also alle Sheets) einbeziehen.
Kannst Du mir einen Tip geben, wie ich das alles lernen kann.
Gibt es da eine gute Seite?
Die Frage wird hier oft gestellt. Guck mal im Forum und/oder im Archiv, ob Du hilfreiche Links findest. Es gibt bzw. gab für begrenzte Zeiten sehr gute Handbücher im Netz, von denen ich auch eins zu Hause habe. Das Problem ist, daß die recht groß sind und sich vielleicht nicht so ohne Weiteres mailen lassen.
Melde Dich nochmal, falls Du nichts findest.
Kristian