yv35k0
Goto Top

Serienbrief - Vorzeichen bei Betrag der in CSV eingetragen ist im Serienbrief entfernen

Hallo,

ich habe einen Serienbrief der mit einer CSV Datei (ohne Formatierung) verknüpft ist.

In der CSV Datei gibt es ein Feld "Betrag" dessen Inhalt so dargstellt wird: +1.122,11 . Nun möchte ich diesen Währungsbetrag im Brief verarbeiten. Mich stört dabei das positive Vorzeichen. Gibt es eine Möglichkeit dieses zu entfernen? Wenn ich das Mergefiled mit \# "€#.###,00" ergänze greift dies nicht. Dies liegt wohl daran, dass es den Wert garnicht als Zahl erkennt.

Hat jemand eine Idee?

Yves

Content-Key: 184069

Url: https://administrator.de/contentid/184069

Printed on: April 25, 2024 at 09:04 o'clock

Member: NetWolf
NetWolf Apr 25, 2012 at 10:38:22 (UTC)
Goto Top
Moin Moin,

du hast das "-" Minus vergessen. Lese bitte z.B. hier

Grüße aus Rostock
Wolfgang
(Netwolf)
Member: yv35k0
yv35k0 Apr 25, 2012 at 10:59:16 (UTC)
Goto Top
Hallo Wolfgang,

danke für deine Antwort. Diese Lösung funktioniert in meinem Fall nicht. Dies verwendet man wenn die Datenquelle z.B. Excel ist. In Word wird dann ein - dargestellt was man so ausblenden kann.

In meiner Quelle steht aber "fest" das + davor.
Member: NetWolf
NetWolf Apr 25, 2012 at 11:10:27 (UTC)
Goto Top
öffne die CSV in Excel, formatiere die Spalte entsprechend als Währung, dann sollte es funktionieren.

Grüße aus Rostock
Wolfgang
(Netwolf)
Member: yv35k0
yv35k0 Apr 25, 2012 at 11:15:28 (UTC)
Goto Top
Ja das wäre zu leicht. Bei den CSV Dateien handelt es sich um Schnittstellendateien die automatisch erzeugt werden und dann so wie sie sind mit Word weiter verarbeitet werden sollen. Da dies täglich mit mehreren Dateien passiert ist es zu aufwendig diese vorher immer noch zu formatieren.
Member: NetWolf
NetWolf Apr 25, 2012 at 11:56:57 (UTC)
Goto Top
Das habe ich mir fast gedacht. Wäre ja auch zu einfach.

Du könntest ja auch den Ersteller bitten kein "+" vor den Werten zu erzeugen.
Oder du könntest z.B. per Script das "+" Zeichen aus den Dateien vor der Nutzung mit Word entfernen lassen.

Da die Daten vermutlich als Text und nicht als Zahl von Word erkannt werden, wird mit der reinen Formatierung nichts zu machen sein.
Muss mal recherchieren, ob es mit VBA zu realisieren ist.

Grüße aus Rostock
Wolfgang
(Netwolf)
Member: yv35k0
yv35k0 Apr 25, 2012 at 12:08:51 (UTC)
Goto Top
Also der Ersteller würde dafür Geld verlangen was nicht in Frage kommt....leider. Das Problem für mich ist eigentlich das der Prozess nicht zu kompliziert werden darf damit es jeder ausführen kann. Ich habe inzwischen festgestellt, dass es auch DB Felder gibt in dem zwischen dem + und Betrag mehrere Leerzeichen sind. Das wird dann sicher noch komplizierter.
Member: yv35k0
yv35k0 Apr 25, 2012 at 12:20:10 (UTC)
Goto Top
Ich überlege gerade ob es möglich ist in Word eine Excel Tabelle einzubinden die dann Serienfelder enthält. Wahrscheinlich gehts aber nicht.
Member: NetWolf
NetWolf Apr 25, 2012 at 12:47:42 (UTC)
Goto Top
wenn du mit CINT das Mergefeld in eine Zahl umwandelst, sollte es funktionieren.
Member: yv35k0
yv35k0 Apr 25, 2012 at 12:51:44 (UTC)
Goto Top
Ich bin die echt dankbar für deine Hilfe aber dein letzter Hinweis sagt mir jetzt garnichts. Worauf beziehst du dich? Auf das Problem in Word oder die Idee eine Tabelle in Word einzufügen?
Member: NetWolf
NetWolf Apr 25, 2012 at 12:56:03 (UTC)
Goto Top
klar geht das mit Excel und Word, das ist quasi Standard.
Member: NetWolf
NetWolf Apr 25, 2012 at 12:59:46 (UTC)
Goto Top
auf das Word Problem mit dem Feld.

versuche bitte mal folgende Einstellung (CINT wandelt Text in Zahlen um)
{ MERGEFIELD CINT(FELDNAME) \# "#.##0,00 }
Member: yv35k0
yv35k0 May 03, 2012 at 15:39:30 (UTC)
Goto Top
Hallo NetWolf,

leider bin ich schon eine Weile nicht mehr zum Testen gekommen.

Wenn ich den Ausdruck so angebe wie von dir beschrieben denkt Word CINT(Feldname) ist insgesamt der Name des Seriendruckfelds. Konntest du bei dir die Lösung schon reproduzieren?
Member: NetWolf
NetWolf May 09, 2012 at 20:57:01 (UTC)
Goto Top
Moin Moin,

ich habe das Problem nun mal an Word-Spezialisten weiter gegeben. So einfach wie ich mir das vorgestellt habe war es dann doch nicht.

Lösung (getestet):

- Erstelle in deinem Serienbrief das Seriendruckfeld Betrag
- beim Rechtsklick auf das eingefügte Feld und der Auswahl Feldfunktionen Ein/Aus solltest du folgendes sehen: { MERGEFIELD Betrag}
- erzeuge dahinter zwei Leerzeichen
- nun fügst du ein neues Feld ein mit dem Inhalt: QUOTE X
- beim Rechtsklick auf das eingefügte Feld und der Auswahl Feldfunktionen Ein/Aus solltest du folgendes sehen: { QUOTE X \*MERGEFORMAT}
- erzeuge dahinter zwei Leerzeichen
- nun fügst du ein neues Feld ein mit dem Inhalt: =0
- beim Rechtsklick auf das eingefügte Feld und der Auswahl Feldfunktionen Ein/Aus solltest du folgendes sehen: { =0 }

soweit die Vorbereitungen

- Nachdem du den Inhalt komplett markiert hast, kopierst du den Inhalt vom ersten Feld mit den Klammern { MERGEFIELD Betrag } mit der Tastenkombination STRG + C in die Zwischenablage

- Diese Kopie fügst du nun in das zweite Feld { QUOTE X \*MERGEFORMAT} an Stelle des X ein. (also X löschen und mit STRG+V die Kopie einfügen)
- Es sollte nun ein Zahlenwert dort angezeigt werden. Beispiel: { QUOTE +100,12 \*MERGEFORMAT}

- Nun markierst und kopierst du diesen kompletten Inhalt mit STRG+C wieder in die Zwischenablage
- und fügst ihn hinter der =0 (+ Leerzeichen nicht vergessen) in das dritte Feld wieder ein
- Es sollte dann so aussehen: { =0 +100,12}

So nun geht es ans Aufräumen: Lösche das erste und zweite Feld, so dass nur noch das dritte übrig bleibt.

Wenn du nun deine Empfänger mal durchblätterst, wirst du sehen, dass nun ein echter nummerischer Betrag angezeigt wird, der dann ggf. noch formatiert werden könnte.

Grüße aus Rostock
Wolfgang
(Netwolf)
Member: yv35k0
yv35k0 May 11, 2012 at 05:54:28 (UTC)
Goto Top
Hallo Wolfgang,

vielen Dank für deine Mühe!

Jetzt funktioniert es. Ich werde es nur noch ein wenig optimieren müssen da die Nachkommastelle nicht angezeigt wird.

Hier auch mal das Resultat mit Feldfunktion falls jemand deine Anleitung nicht verstehen sollte:

{ =0 { QUOTE { MERGEFIELD Betrag } \*MERGEFORMAT }}

Kannst du eventuell kurz beschreieben was die Funktion QUOTE und \*MERGEFORMAT machen? Ich würde es gern verstehen um es eventuell später in anderen Fällen einsetzen zu können.

Yves
Member: yv35k0
yv35k0 May 11, 2012 at 05:58:26 (UTC)
Goto Top
Ich muss mich noch korrigieren. Die Nachkommastelle wird angezeigt wenn der Betrag etwas dahinter hat. Allerdings auch nur die bei z.B. 1.123,30 steht dann 1.123,3.
Member: NetWolf
NetWolf May 11, 2012 at 10:07:32 (UTC)
Goto Top
Moin Moin,

Ich hatte mit zwei Stellen und vier Stellen hinter dem Komma getestet. Es sah gut aus face-smile

Erklärung zu QUOTE vom Hersteller
Erklärung zu \*MERGEFORMAT vom Hersteller
man kann die Erklärung aber auch in der Hilfe von Word nachlesen.

Da es sich nun um eine echte Zahl handelt, kannst du nun auch die entsprechende Formatierung anwenden (die vorher beim reinen Text nicht funktioniert hat): \# "#.##0,00"

{ =0 { QUOTE { MERGEFIELD Betrag } \# "#.##0,00" }}

Um die Sache zu verdeutlichen, habe ich jetzt mal \*MERGEFORMAT weggelassen, du musst entscheiden ob du es nutzen willst oder nicht.

Grüße aus Rostock
Wolfgang
(Netwolf)
Member: yv35k0
yv35k0 May 11, 2012 at 10:48:07 (UTC)
Goto Top
Perfekt!

Etwas anders als du geschrieben hast aber es geht.

Lösung mit Währung:

{ QUOTE { =0 { QUOTE { MERGEFIELD X } \*MERGEFORMAT }} \# "#.##0,00 €" }

Ich danke dir für deine Ausdauer und Hilfe!

Yves