Seite 1 von 1

Mit ComatePlus Platzhalter (Text) im Word-Footer ersetzen

Verfasst: 26.03.2019 15:36
von Meier
Hallo Ihr Lieben,

ich komme mal wieder mit einer ComatePlus-Anfrage zu euch.

Ich würde gerne im Footer (oder Header) einen Platzhalter ersetzen, z.B. #datum. Der Rest des Footers ist in bestimmter Weise angeordnet und soll sich nicht verändern.


Bisher besteht die Lösung darin, das Worddokument als XML abzuspeichern und mit

Code: Alles auswählen

SetXMLNodeText(*CurrentNode, newText)
anzupassen. Bei wenig formatierten Worddokumenten funktioniert das auch sehr gut. In dem neuen Dokument befinden sich jetzt aber Aufzählungszeichen, die beim verwenden von

Code: Alles auswählen

SaveXML(xmldatei, Pfad)
verändert werden und ziemlich bescheiden aussehen.

Nun bin ich auf die Idee gekommen, den Platzhalter mit ComatePlus zu ersetzen. Dabei bin ich dann nach zahlreichen Versuchen übergegangen erstmal eine VBA-Version hinzubekommen. Da wird zwar der Platzhalter ersetzt, aber die formatierte Fußzeile sieht beim Zurückschreiben immer anders aus. Hier mal zwei Versuche:

Code: Alles auswählen

    Dim strHeader As String
    strHeader = ActiveDocument.StoryRanges(wdPrimaryHeaderStory)
    strHeader = Replace(strHeader, "#datum", "25.03.2019")
    strHeader = Left(strHeader, Len(strHeader) - 1)
    ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text = strHeader
Die Texte stehen anschließend viele weiter auseinander.

Code: Alles auswählen

    Dim rngFoot  As Word.Range 'Quelle
    Dim rngFootZiel As Word.Range 'Ziel
    
    Set rngFoot = ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.FormattedText
    Set rngFootZiel = ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range
    
    'MsgBox strHeader
    rngFoot = Replace(rngFoot, "#now", "25.03.2019")
    
    rngFootZiel.Collapse wdCollapseStart
    rngFootZiel.FormattedText = rngFoot.FormattedText
Auch hier stehen die Text weiter auseinander und die Fußzeile wird verdoppelt. :freak:

Die Hoffnung ist, den bestehenden VBA-Code in ComatePlus zu übersetzen.

Vielleicht hat ja jemand eine direkte Lösung oder zumindest zu meinen Ansätzen.

Viele Grüße
Meier

Re: Mit ComatePlus Platzhalter (Text) im Word-Footer ersetze

Verfasst: 30.04.2019 10:21
von Meier
Hallo zusammen,

hat keiner eine Idee?

Also der Hauptzweck ist einen Text im Footer zu ersetzen ohne, dass sich dieser selbst verändert.

Vielleicht hat jemand eine andere Idee mit einem anderen Werkzeug als ComatePlus. Ich bin für alles offen.

Viele Grüße
Meier

Re: Mit ComatePlus Platzhalter (Text) im Word-Footer ersetze

Verfasst: 30.04.2019 17:11
von mk-soft
Wenn es mit VB-Script geht kann man es auch mit ActiveScript ausführen.
Somit muss man den Script nicht erst in COMate umsetzen.

Geht vielleicht schneller.

Link: viewtopic.php?f=8&t=31072

Re: Mit ComatePlus Platzhalter (Text) im Word-Footer ersetze

Verfasst: 03.05.2019 09:36
von Meier
Hallo mk-soft,

hier ist auch schon das Problem. Ich kann es nicht mal im VB-Skript umsetzen. Der Footer wird nie eins zu eins zurückgeschrieben. Es entstehen u.a. größere Abstände.

Abers sobald ich es hinbekommen habe, dass VB das richtig macht, werde ich deinen Vorschlag ausprobieren.

Vielen Dank schon mal.

Viele Grüße
Meier