Euro in Word-Dokument

Hallo zusammen,

ich bin auf der Suche nach einem Makro, das folgendes macht:

In einem beliebigen Word-Dokument (doc oder dot) nach Text suchen, der DM-Beträge darstellt (z.B. 100,00 DM oder 100 DM).
Den gefundenen Text soll es nun in Euro umrechnen (also geteilt durch 1,95583), den Wert korrekt runden (Berechnung auf 3 Stellen hinter dem Komma, Darstellung mit 2 Stellen hinter dem Komma)und an derselben Stelle wieder in den Text einfügen entweder mit dem €-Zeichen oder der Bezeichnung EUR.

Ich hoffe Ihr könnt mir weiterhelfen.
Vielen Dank im voraus.

Gruß
Franz

Hallo Franz

Die Sache ist nicht trivial, zu dem ziemlich gefährlich und Du kannst nicht ganz sicher sein, ob Du alle Geldbeträge in einem an sich unstrukturierten Kontrakt, wie ein Word-Dokument tatsächlich auch findest. Auch Fehlberechnungen sind möglich, da ja niemand sicher stellt, dass Benutzer solche Geldbeträge auch wirklich in einer solchen Konsistentz eintippen, dass diese nicht nur von Menschen richtig erkannt und interpretriert werden sondern auch von einem Programm. Die Validierung, welche Du z.B. bei einem Formular hast fehlet ganz einfach. Eingedenk, dass Menschen pinkelig sind, was Geld betrifft, also ein zoemlich gefähtliches Unterfangen.
.
.
Wenn Du DIch daran machen willst, dann würde ich diese auf Objektebene Word tun. Du müsstest dann also jedes Wort im Dokument schleifen und das geht so:

Set oWord = ActiveDocument.Words(1)
While Not oWord Is Nothing
MsgBox oWord
Set oWord = oWord.Next
Wend

Falls Du auf das Wort DM stösst musst Du zurück lesen und feststelen, ob davor ein Geldbetrag steht.

Dabei muss Du aber wissen, dass Word-VBA unter einem Wort mitunter etwas anders versteht als ein Mensch. Wenn der Benutzer z.B. dummerweise zwei Leerschläge statt einen macht, dann wird zwar das erste Leerzeichen eliminiert (als Trennzeichen zwischen zwei Wörtern), das 2. Leerzeichen allerding stellt ein zusätzliches Wort mit einem Leerschlag als Inhalt dar. Ähnliches gilt bei Kommata und Punkten. In diesem Fall müsstest Du also noch weiter zurücklesen.

Wenn Du also einen Geldbetrag ausgemacht hast, dann kannst Du das so ummrechnen:

EuroBetrag = Format(oWord / 1.95, „#’###,##“)

Dasnn kannst Du den Text ändern:

oWord = EuroBetrag.
.
.
cheers

Hallo,

danke für Deine Hilfe. Sorry, die Antwort hat ein bißchen gedauert, aber ich war in Urlaub :smile:).

Ich werde Deinen Lösungsvorschlag mal testen. Ich habe nämlich jede Menge Vorlagen, die feste DM-Beträge enthalten und ich wollte damit den Nutzern und natürlich mir :wink: eine einfache Möglichkeit anbieten diese Vorlagen auf Euro umzustellen, vor allem die Euro-Beträge richtig zu berechnen.

Nochmals vielen Dank
Franz