PDA

Vollständige Version anzeigen : SerienBrief Funktion mit Formatierung


Rhöni
20.08.2019, 23:22
Hallo in die Runde,

meine Datenbankfelder werden immer komplizierter nun stehe ich für einen großen Rätsel:

Excel bringt mir eine Lagerdatei mit Datensätzen wo nun Mischfelder (Zahlen/Text) enthalten sind. Gerne möchte ich meine Formatierung beibehalten, aber wo nun Text drin steckt ist die Ausgabe "0 000"

MERGEFIELD Teilenummer # "### ### ##0 000"


Die Teile-Nr. kann von 4 stellig bis 12 stellig gehen dabei soll im gedrucktem Format von hinten immer in dreier Gruppen die Zahlen bzw. nun mit Text auf dem Etikett gedruckt werden.


Datenfeld:____Ausgabeformat
3598TE982_______3 598 hier steckt der Fehler
95525521____95 525 521
95521338____95 521 338
94581012____94 458 012
93195738____93 195 738
3138151______3 138 151
9267213______9 267 213
64136__________ 64 136
9951____________9 951

Die Gemeinheit in unserem Datensatz ist, dass nun in die Teile-Nr. von der exorbitanten Länge nun zu den Zahlen auch Buchstaben sich gesellen. Nun bekomme ich nicht mehr hin, dass beim Ausdruck über Serienbrieffunktion in Word, die Gruppierung der Teile-Nr. für die bessere Leslichkeit auf den Etiketten nicht mehr funktioniert.

Im Datensatz hat sich durch diese Änderung in der Spalte "Teile-Nr." zu den reinen Zahlen auch Textfelder hinzugesellt.

Bitte um Vorschläge wie ich in Word das Mergefield mit den gewünschten Leerfeldern versehen kann, bzw. eine Vorbearbeitung in Excel zu tätigen ist.

Danke

wb425
21.08.2019, 09:53
Hallo Rhöni,
vielleicht wäre es ratsam, im Vorfeld die Exceldatei anzupassen (siehe Anhang) und den Import im Textformat durchzuführen...

halweg
21.08.2019, 10:00
Vielleich kann man dir besser helfen, wenn du die Probleme runterbrichst und dem Helfer ein konkretes (Excel-)Problem nennst.

Rhöni
21.08.2019, 22:03
Weder in Excel bzw. im Worddokument bekomme ich die gewünschte Gliederung, in jeweils dreier Gruppen nicht hin.

Rhöni
21.08.2019, 22:29
Auch Excel, macht das nicht, Zahlen und Zahlen mit Buchstaben gemischt, lassen sich nicht mit den üblichen Zahlenformaten gleichermaßen bearbeiten.

Habe ein Fall ober trüber die Excel Datei und zwei Bilder von meinen Etiketten angehangen.

Danke und danke für jede weitere Idee.

Rhöni

knobbi38
22.08.2019, 03:01
Hallo Rhöni,

du kannst mit einer VBA Funktion die Teilenummer mit einem benutzerdefinierten Textformat formatieren (siehe vba.format$()). Im Word-Dokument übernimmst du dann anstatt der originalen Teilenummer die Spalte mit den formatierten Teilenummern.

Ulrich

halweg
22.08.2019, 09:47
Man kann die dreigliedrige Teilenummer auch direkt in Excel per Funktion aus der Originalen erzeugen. In einer extra Spalte.
So könnte man also, die Teilenummer in A1 vorausgesetzt, mit
=TEIL(A1,1,3) & " " & TEIL(A1,4,3)
aus "123as3" so was wie "123 as3" machen.
Damit das auch bei beliebigen Längen der Teilenummern funktioniert, müsste man noch die Funktionen LÄNGE(A1) und WENN(..) dazu nehmen.

wb425
22.08.2019, 11:48
Hallo Rhöni,
schau mal in die Anlage.
So kannst du die Teilenummer direkt in Excel bearbeiten. Zunächst ist die verwendete Formel auf max. 15 Stellen konzipiert. Bei bedarf müsstest du sie dann entsprechend erweitern.

knobbi38
22.08.2019, 13:04
Hallo Rhöni,

hier nochmal die vba Funktion nachgereicht:
Public Function fnFmtTeilenummer(ByVal TNR As Variant) As String
fnFmtTeilenummer = Format$(TNR, "@@@ @@@ @@@ @@@")
End Function


Ulrich

Rhöni
22.08.2019, 21:57
Wau, rufe ich aus!

Und Danke an all die Mitstreiter.

Mit VBA habe ich keine Erfahrung, da nehme ich mit großen Dank die Lösung von Wolfgang (wb425).

Ich hatte mich so sehr auf das Zahlenformat und deren Formatierung versteift, aber wenn es keine Zahl mehr ist, dann geht man so heran. Habe in der Vergangenheit selbst schon so manche Reifen Excel Tabelle mit den Reifengrößen zerlegt in Einzelbestandteile, auch da musste ich mit verschiedenen Aufbau der verketteten Reifengrößen zurecht kommen. Aber alles schon über 10 Jahre her. Irgendwann hatten meine Lieferanten, es selbst erkannt und Webshops aufgebaut, die diese über Einzel Filterfunktionen uns Händler es ermöglicht haben Filter zu setzen.

Somit kommt es mir vertraut vor solch eine verschachtelte Funktion aufzubauen. =GLÄTTEN(LINKS(A8;REST(LÄNGE(A8);3))&" "&TEIL(A8;REST(LÄNGE(A8);3)+1;3)&" "&TEIL(A8;REST(LÄNGE(A8);3)+4;3)&" "&TEIL(A8;REST(LÄNGE(A8);3)+7;3)&" "&TEIL(A8;REST(LÄNGE(A8);3)+10;3)&" "&TEIL(A8;REST(LÄNGE(A8);3)+13;3))

Morgen mache ich mich gleich mal ran und muss natürlich die Feldfunktionen noch im Serienbrief ändern.

Danke Danke Danke



Die Zeit die Ihr hier für mich geopfert habt, Wahnsinn! Ich bin Stolz hier User im Forum seien zu dürfen. Spitzen Leistung, da ich kein VBA Profi bin begeistert mich besonders die Lösung von Wolfgang (wb425)

Freue mich äußerst, hier endlich die Lösung für die Erstellung zum gewünschten Format erhalten zu haben.

Danke Danke Danke Danke Danke Danke Danke

Rhöni