Access-o-Mania

Office-Forum => Microsoft Word => Thema gestartet von: DF6GL am Dezember 02, 2017, 17:35:38

Titel: Word Feldfunktion entspr. VBA Right ("ABCD1234",4) bei Serienbrieffeld
Beitrag von: DF6GL am Dezember 02, 2017, 17:35:38
Hallo,

Problem:  In einem Word-Serienbrief  (Vorlage)  müssen die rechten 4 Zeichen aus einem Serienbrieffeld ausgeschnitten und angezeigt werden.

Das konkrete Problem liegt darin, dass Word bei der Mergefield-Funktion Datumsangaben < 01.01.1901 nicht richtig formatiert und bei der Berechnung einer Zeitspanne (Jubiläum) mit "Syntaxfehler"  aussteigt.

{={Date \@ "yyyy"} - { Mergefield Gründungsdatum \@ "yyyy"}}
berechnet nur das Gründungsdatum ab 01.01.1901 korrekt.

Ältere Daten für das Gründungsdatum werden mit Syntaxfehler quittiert.
Versuche, das Gründungsdatum in die Zukunft zu transportieren (100 Jahre zu addieren) und anschließend wieder zu korrigieren (100 Jahre subtrahieren) waren erfolglos.

Kennt jemand eine solche Funktion oder einen Workaround?

Danke!






Titel: Re: Word Feldfunktion entspr. VBA Right ("ABCD1234",4) bei Serienbrieffeld
Beitrag von: Sebi am Dezember 09, 2017, 23:06:31
Hallo,

sry die späte Antwort.
Ja dies ist leider bekannt.

Ursächlich ist wohl, dass teilweise das englische Format herangezogen wird.
Wenn du das Format in Englisch übergibst sollte es gehen.

Kommt aber immer auf die Wordversion und die Artd er Datenquelle an.

Lieben Gruß Sebastian
Titel: Re: Word Feldfunktion entspr. VBA Right ("ABCD1234",4) bei Serienbrieffeld
Beitrag von: DF6GL am Dezember 10, 2017, 09:38:46
Hallo Sebi,

danke für die Antwort.


Ja, mit einem US-formatiertem Datum muss ich mal probieren.  Die Datenquelle ist eine CSV-Datei, in der das Datum eben als Text mit deutschem Format steht.  Word-Version: Office 2010.  Problematisch ist nur, dass diese CSV-Datei von einer Schnittstelle eines Verwaltungsprogramms generiert wird und ich auf diese Schnittstelle keinen Zugriff habe. Es dreht sich dabei primär um eine berechnende Oracle-SQL-Abfrage.
Titel: Re: Word Feldfunktion entspr. VBA Right ("ABCD1234",4) bei Serienbrieffeld
Beitrag von: steffen0815 am Dezember 10, 2017, 10:02:07
Hallo,
falls du ohnehin mit einer docm arbeitest, könntest du dir die CSV ja passend umschreiben.
Titel: Re: Word Feldfunktion entspr. VBA Right ("ABCD1234",4) bei Serienbrieffeld
Beitrag von: DF6GL am Dezember 10, 2017, 12:00:08
Hallo,

das Umstellen auf US-Format bewirkt keine Änderung.

Klar könnte ich ein Umschreiben der CSV bewerkstelligen, ich will aber das Übel bei der Wurzel umgehen, d. h. schon die Schnittstelle soll mir eine benutzbare CSV-generieren.  Habe dazu schon den Support des Progs beauftragt, damit dieser das Datum um 100 Jahre in die Zukunft hebt. Noch besser wäre, wenn dort das "Jubiläumsalter" schon als Anzahl Jahre berechnet  und genauso Tag und Monat als Text extrahiert  würde. Dann entfällt ganz die "bescheuerte" Word-Berechnung.
Titel: Re: Word Feldfunktion entspr. VBA Right ("ABCD1234",4) bei Serienbrieffeld
Beitrag von: Sebi am Dezember 10, 2017, 12:56:18
Hi du,

was ist denn wenn du das CSV am Anfang komplett in ein Array pushst und dann damit arbeitest.

Aber irgendwie bin ich ohnehin eher hilflos, wenn du hier Fragen stellst.
Normalerwiese bist du immer die Hoffnung, wenn es nicht weitergeht.

Nur manchmal ist man evtl. ein wenig Blind für das eigentlöiche Problem.

Lieben Gruß und schönen 2. Advent
Titel: Re: Word Feldfunktion entspr. VBA Right ("ABCD1234",4) bei Serienbrieffeld
Beitrag von: DF6GL am Dezember 11, 2017, 19:35:54
Hi Sebi,

nun ja, Word ist für mich eher perifer, was diese Feldfunktionen angeht.

Ebenso schöne kommende Festtage.
Titel: Re: Word Feldfunktion entspr. VBA Right ("ABCD1234",4) bei Serienbrieffeld
Beitrag von: Sebi am Dezember 11, 2017, 19:43:12
Das via Array zu lösen ist nicht sinnvoll?
Titel: Re: Word Feldfunktion entspr. VBA Right ("ABCD1234",4) bei Serienbrieffeld
Beitrag von: DF6GL am Dezember 11, 2017, 20:49:38
Hi,

ich möcht so wenig wie möglich einbauen, bzw. verändern, derweil es sein kann, dass die Geschichte mal ein Anderer betreut ;-)