Ainopie Geschrieben 7. Dezember 2021 Geschrieben 7. Dezember 2021 Hallo Ihr Lieben, ich tüftle nun seit Tagen an folgendem Problem: Ich möchte gerne ein Makro in meinem Word anlegen, der mir aus einer bestimmten Mustervorlage die Kopf- und Fußzeile (erste Seite anders) exakt so in den jeweiligen offenen Dokument, dass ich gerade bearbeite, einfügt (sind immer verschiedene neue Dokumente, in dem diese K&F-Zeilen eingefügt werden sollen). Ich habe schon einiges probiert. Manchmal klappt nur die Fußzeile zu kopieren, dann findet er manchmal die Quellen nicht mehr... Ich bin völlig verzweifelt... Sub Makro1() ' ' Makro1 Makro ' ' If ActiveWindow.View.SplitSpecial <> wdPaneNone Then ActiveWindow.Panes(2).Close Set DocAlt = ActiveDocument Set DocNeu = Documents.Open("C:\Quelle_Dokument_Kopf_Fuss.docx") ActiveWindow.View.SeekView = wdSeekCurrentPageHeader End If If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _ ActivePane.View.Type = wdOutlineView Then ActiveWindow.ActivePane.View.Type = wdPrintView End If ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader Selection.WholeStory Selection.Copy Selection.PasteAndFormat (wdFormatOriginalFormatting) Selection.TypeBackspace Selection.WholeStory Selection.Copy Selection.Copy Selection.PasteAndFormat (wdFormatOriginalFormatting) Selection.TypeBackspace ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter Selection.WholeStory Selection.Copy Selection.PasteAndFormat (wdFormatOriginalFormatting) Selection.TypeBackspace Selection.WholeStory Selection.Copy Selection.Copy Selection.PasteAndFormat (wdFormatOriginalFormatting) Selection.TypeBackspace End Sub Ich würde mich so, so, so, so, so, so, so sehr über Hilfe freuen, wenn jemand eine Idee hat, wie man dieses Makro funktionstüchtig macht... Schon mal vielen Dank und liebe Grüße M. Zitieren
Maniska Geschrieben 7. Dezember 2021 Geschrieben 7. Dezember 2021 Ähm... Warum erstellst du dein Dokument nicht direkt aus der Vorlage? Also einer .dotx Datei mit genau dem was du haben willst, ohne das Makrogefummel? SoL_Psycho reagierte darauf 1 Zitieren
SoL_Psycho Geschrieben 7. Dezember 2021 Geschrieben 7. Dezember 2021 Ähm... Warum erstellst du dein Dokument nicht direkt aus der Vorlage? Also einer .dotx Datei mit genau dem was du haben willst, ohne das Makrogefummel?So und nicht anders... Zitieren
Ainopie Geschrieben 7. Dezember 2021 Autor Geschrieben 7. Dezember 2021 Hab ich versucht, doch wird die Formatierung leider nicht immer 100 % korrekt übernommen (was das größere Problem ist...) und der Dateiname muss dann immer neu abgeändert werden. Die K&F-Zeilen sollen in schon bestehenden Dokumenten eingefügt werden - das sind immer so 20-30 am Stück und da darf auf keinen Fall die Formatierung verhagelt werden. Wenn ich nun einen brauchbares Tool hätte / oder halt Makro, dann wäre es klasse, wenn man in dem jeweiligen Dokument nur ein "Klick" auf eine Schaltfläche und / oder Tastenkürzel machen könnte und Fuß- und Kopfzeile sind drin - OneDrive speichert es automatisch, schließen, fertig... So meine Idee... 🤭 Aber wenn es nur mit einer Vorlage klappen könnte... dann muss das wohl sein. 😰 Ich dachte, es wäre über ein Makro irgendwie doch möglich. Zitieren
Rienne Geschrieben 7. Dezember 2021 Geschrieben 7. Dezember 2021 Meines Wissens nach kannst du auch Kopf- und Fußzeilen im Katalog speichern und sie dann quasi als Baustein immer wieder verwenden. Hast du das schon versucht? Makros würde ich persönlich so gut es geht vermeiden. Zitieren
Whiz-zarD Geschrieben 8. Dezember 2021 Geschrieben 8. Dezember 2021 vor 11 Stunden schrieb Ainopie: Hab ich versucht, doch wird die Formatierung leider nicht immer 100 % korrekt übernommen (was das größere Problem ist...) Was soll denn dabei nicht korrekt übernommen werden? Vorlagen sind nichts weiter als Word-Dateien. vor 11 Stunden schrieb Ainopie: und der Dateiname muss dann immer neu abgeändert werden. Vorlage öffnen. Datei -> Speichern unter. Wo ist das Problem? Und ganz ehrlich: Bei 20 - 30 Dateien würde ich einmal kurz in den sauren Apfel beißen und überall händisch die Kopf- und Fußzeilen reinkopieren, als mir da tagelang ein Makro zu bauen. Wie lange braucht man dafür? Ein, maximal zwei Stunden. Dann ist das Thema doch durch. Für neue Dateien würde ich dann eine Vorlage bereitstellen. Die könnte man dann sogar unternehmensweit bereitstellen. Zitieren
allesweg Geschrieben 8. Dezember 2021 Geschrieben 8. Dezember 2021 Wenn ich das richtig verstehe, kommen immer wieder 20-30 Dateien rein, welche mit diesen Kopf- & Fußzeilen versehen werden sollen. Ist es wichtig, dass die Dateien weiterhin als .doc(x) vorliegen oder könnten sie auch zu PDF konvertiert werden? Wieso werden die Dateien nicht gleich mit diesen Kopf- und Fußzeilen erfasst? Zitieren
Whiz-zarD Geschrieben 8. Dezember 2021 Geschrieben 8. Dezember 2021 Ach, da steht das Wort "immer". 😅 Dann nehme ich zurück, was ich vorhin geschrieben habe. Ja, dann würde ich mir auch die Frage stellen, wieso die Dateien ohne Kopf- und Fußzeile erzeugt werden und ggf. da ansetzen. Wenn du unbedingt ein Makro schreiben willst, dann würde ich nicht mit dem Windowhandle arbeiten, sondern direkt mit den Dokumenten. Der Witz an den Kopf- und Fußzeilen ist, dass sie aus drei Bereichen bestehen: Links, Mitte, Rechts. Ich hab mir aus Spaß nun eine *.docm (Word-Dokument mit Makro) erzeugt und in dieser Datei die Kopf- und Zeilen definiert, die ich brauche. Das Makro sieht dann so aus: Sub CopyHeaderFooter() Dim docSource As Document Dim docTarget As Document strTargetFileName = "C:\_Daten\Temp\Dok2.docx" Set docSource = ActiveDocument Set docTarget = Documents.Open(strTargetFileName) For i = 1 To docSource.Sections(1).Headers.Count docSource.Sections(1).Headers(i).Range.Copy For j = 1 To docTarget.Sections.Count docTarget.Sections(j).Headers(i).Range.Paste Next j Next i For i = 1 To docSource.Sections(1).Footers.Count docSource.Sections(1).Footers(i).Range.Copy For j = 1 To docTarget.Sections.Count docTarget.Sections(j).Footers(i).Range.Paste Next j Next i docTarget.Close wdSaveChanges End Sub Das lässt sich mit Sicherheit noch optimieren oder nach deinen Bedürfnissen anpassen aber es ist ein Anfang. Ich öffne halt mittels Documents.Open() die Datei, wo ich die Kopf- und Fußzeilen reinkopiert haben möchte (in meinem Fall die Do2.docx). Durchlaufe dann alle Bereiche der Kopf- und Fußzeilen der ersten Seite im aktuellen Dokument (wo sich auch die definierten Kopf- und Zeilen befinden) und kopiere sie in allen Seiten des neu geöffneten Dokumentes und speicher es am Schluss. Das Sections-Objekt ist eine Collection der Seiten. Zitieren
Ainopie Geschrieben 8. Dezember 2021 Autor Geschrieben 8. Dezember 2021 Hallöchen Whiz-zarD, vielen Dank für deine Antworten - und, ja genau, dass Wort "immer" macht die Arbeit 😂 Es sind nämlich 20-30 Dokumente täglich, nicht nur einmalig... ich habe nun mal deine Code genommen - das würde auch fast klappen (der Weg ist super ☺️), aber wenn ich das richtig sehe muss ich dann jedes mal, für jedes zu bearbeitende Dokument "strTargetFileName =" anpassen, bzw. neu anlegen. Würde es nicht gehen, dass die Kopf- und Fußzeilen "nur" aus einer Vorlage / einem "Musterdokument kopiert werden und in der gerade geöffneten Datei (in der die Kopf- und Fußzeile rein soll) eingefügt werden und der Code nicht jedes Mal geändert werden müsste...? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.