Office: (Office 2016) MERGEFIELD Ausgabe einer Zahl in unterteilte Tabelle

Helfe beim Thema MERGEFIELD Ausgabe einer Zahl in unterteilte Tabelle in Microsoft Word Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, hier noch eine Problemstellung: Es geht um eine Wordvorlage, in die unter anderem unter Verwendung der Feldfunktion MERGEFILELD eine... Dieses Thema im Forum "Microsoft Word Hilfe" wurde erstellt von *xdc*, 19. Juli 2024.

  1. *xdc* Neuer User

    MERGEFIELD Ausgabe einer Zahl in unterteilte Tabelle


    Hallo zusammen,

    hier noch eine Problemstellung:
    Es geht um eine Wordvorlage, in die unter anderem unter Verwendung der Feldfunktion MERGEFILELD eine achtstellige Zahl eingefügt werden soll. Die Zahl muss dabei an zwei Stellen des Dokuments eingefügt werden. Einmal komplett und einmal müssen die einzelnen Ziffern in einer Tabelle ankommen, in der jede Ziffer in einer eigenen Zelle steht. Bisher werden jedes Mal die Ziffern der an Stelle 1 übertragenen Zahl von Hand in die jeweiligen Tabellenzellen eingetragen, bebor das Dokument weiter verabeitet wird.

    Gibt es hier irgendwie die Möglichkeit, z.B. das Feld in jede der Zellen einzufügen und über spezifische Schalter dafür zu sorgen, dass in Zelle 1 die Ziffer 1 von acht landet, in Zelle 2 die Ziffer 2 von acht usw.? Die zu übermittelnde Zahl kann nur über die Serienbrieffunktion eingebunden werden, da die Anbindung über das Fachverfahren hier keine anderen Optionen bietet. Möglicherweise gibt es hier auch einen VBA-Ansatz?
     
    *xdc*, 19. Juli 2024
    #1
  2. Gerhard H Erfahrener User
    Hallo xdc,

    es gibt zwei Möglichkeiten:

    1. Makrofrei:
    du fügst in deine Datenquelle 8 zusätzliche Spalten ein, in denen du dir mittels Links|Teil|Rechts-Formeln die einzelnen Ziffern ausgeben lässt. In deine Word-Tabelle kommen dann die entsprechenden Seriendruckfelder.

    2. Mit Makro:
    Das bedarf noch einiger Zusatzinformationen:
    a)
    Da die Kennzahl pro "Adressat" ja erst nach zusammengeführtem Seriendruck bekannt ist, und es dort ja keine Mergefields mehr gibt, muss es einen Ort geben, in dem die Kennzahl auslesbar ist. Diese Bedingung wäre erfüllt, wenn die Kennzahl in einem Inhaltssteuerelement oder einer anderen Tabelle(nzelle) oder sonst einem erkennbaren Ort stehen würde (Textmarke scheidet aus, weil es in 1 Dokument nicht mehrere Textmarken gleichen Namens geben kann).
    b)
    Im ausgeführten Seriendruck stehen die Informationen, die einem "Adressaten" zugeordnet sind, jeweils in einem eigenen Abschnitt. Es muss also bekannt sein, ob die Abschnitte pro Empfänger noch mal in weitere Abschnitte unterteilt sind oder nicht. Und es muss bekannt sein, ob es außer der Tabelle für die einzelnen Kennziffern noch weitere Tabellen gibt.

    c)
    Die letzte Frage ist dann: wohin mit dem Makro. Je nachdem, ob das Dokument eine Dokumentvorlage (dotx bzw. nach Einfügen eines Makros dotm) ist, oder ein normales Dokument, und wer das Dokument bearbeiten muss: Nur du oder weitere Personen an anderen Rechnern.

    Wenn ich den einfachsten Fall zu Grunde lege (1 Abschnitt pro Adressat, Kennzahl in einem Inhaltssteuerelement, 1 Tabelle pro Abschnitt, Bearbeiter bist nur du) könnte es so gehen:
    Code:
    Sub zerteilKennzahlen()
    Dim kennzahl As String
    Dim i As Long, j As Long
    
        'ActiveDocument ist der ausgeführte Seriendruck
        With ActiveDocument
            For i = 1 To .Sections.Count - 1
                kennzahl = .SelectContentControlsByTag("Kennzahl").Item(i).Range.Text
                    For j = 1 To Len(kennzahl)
                        'Tabelle(1) ist die für die Aufnahme der zerteilten Kennzahlen)
                        .Sections(i).Range.Tables(1).Range.Cells(j).Range.Text = _
                        Mid(kennzahl, j, 1)
                    Next j
            Next i
        End With
    End Sub
    
    Das Makro könntest du in ein Modul deiner normal.dotm stecken und auf den zusammengemixten Seriendruck loslassen.
     
    Gerhard H, 19. Juli 2024
    #2
  3. *xdc* Neuer User
    Vielen Dank für die ausführliche Rückmeldung!
    Variante 1: fällt leider aus, da die Quelle keine unmittelbar zugängige Tabelle ist, in die ich zusätzliche Spalten einfügen könnte. Die Daten kommen aus einer recht komplexen Datenbank eines Fachverfahrens und lassen sich nur über entsprechende Seriendruckfelder im Word Dokument ausgeben.
    Variante 2: Die normal.dotm ist in meinem Fall leider nicht (mit Schreibrechten) zugänglich. Als Serienbrief-Vorlagendatei wird vom Programm leider auch keine .dotm Datei akzeptiert, so dass der Weg wohl leider auch nicht so ohne Weiteres zu realisieren ist. Es bleiben so gesehen nur die Funktionen, die sich ein eine einfache docx einbauen lassen. Und damit kommt man hier vermutlich nicht weiter.
     
    *xdc*, 22. Juli 2024
    #3
  4. Gerhard H Erfahrener User

    MERGEFIELD Ausgabe einer Zahl in unterteilte Tabelle

    Hallo xdc,

    ich bin mir jetzt nicht sicher, was das Fachprogramm genau zurückliefert. Wenn es ein ausgeführter Seriendruck mit mehreren Abschnitten ("Adressaten") ist, und die Kennziffern an einem identifizierbaren Ort notiert sind, dann kannst du das Makro aus #2 trotzdem, aber halt nur etwas umständlicher anwenden: Makro als Textdatei speichern und auf die Output-Datei anwenden. Dazu musst du halt den Inhalt der Textdatei temporär in ein VBA-Modul der Output-Datei einfügen. Beim erneuten Speichern wird das Makro dann zwar wieder gelöscht, aber das ist ja egal.

    Sollte das Fachprogramm aber jeweils nur Daten für 1 Adressaten ausspucken, ist wahrscheinlich das manuelle Übertragen in die Tabelle der schnellere Weg.
     
    Gerhard H, 22. Juli 2024
    #4
  5. czil hat Ahnung
    Die Normal ist des Users. Wäre, außer du darfst nur die Web-Anwendung benutzen, das erste mal, dass man da nicht drauf zugreifen dürfte. Sie liegt ein wenig versteckt, aber sobald du die Applikation nutzt, ist sie da und ist sie auch bearbeitbar.
    Falls du dich an das Ding nicht rantraust, erstelle eine andere *.dotm, die du zu dem zu bearbeitenden Dokument öffnest. Schon kannst du auf die Makros zugreifen. Gerhard hat das Teil so geschrieben, dass es immer im aktiven Dokument arbeitet.
    Ganz nebenbei funktioniert ein Serienbrief der aus einem x-beliebigem Programm erstellt wird auch nur mit einer temporären Datenquelle. Man hat nur schwer Zugriff auf diese. aber geben tut sies und müsste, soweit ich mich erinnere, auch speicherbar.
     
  6. *xdc* Neuer User
    Es geht beim Aufruf der Datei immer nur um einen Adressaten, dabei wird die Datei jedoch von mehrern Nutzern auch öfter aufgerufen.

    Das klingt nicht nach einmal anlegen und dann bei jedem Aufruf der Sereienbrief-Datei automatisch nutzen, daher ist:

    Der Speicherort der Nomal.dotm lässt sich ja im Fenster "Microsoft Office-Ad-Ins anzeigen und verwalten" überprüfen und ist in unserem Fall ausgelagert auf einem zentralen Laufwerk mit eingeschränkten Schreibrechten:
    MERGEFIELD Ausgabe einer Zahl in unterteilte Tabelle upload_2024-7-23_8-35-9.png

    Lediglich die Serienbrief Vorlagendateien (.docx) kann ich frei konfigurieren.

    Danke für das Angebot!, wenn ich wüßte was ich wo rein schreiben muss, würde ich es aber auch gern selber probieren. Lässt sich so eine alternative dotm dann so mit der Vorlagendatei verknüpfen, dass sie automatisch im Hintergrund abgerufen und verwendet wird? Jedes mal eine extra Datei zu starten ist für die anderen Nutzer vermutlich nicht praktikabel.
     
    *xdc*, 23. Juli 2024
    #6
  7. czil hat Ahnung
    Du legst einfach ein Dokument an, speicherst es als Word Vorlage. In einem Ordner deiner Wahl. Dort kannst du es nach Bedarf öffnen.
    Es gibt auch einen Ordner, dessen Dokumente beim Start von Word automatisch geöffnet werden. Dann musst du dich da nicht drum kümmern.
    Word mit Vorlage starten.

    Das Makro kopierst du da rein und kannst es nutzen
     
  8. *xdc* Neuer User

    MERGEFIELD Ausgabe einer Zahl in unterteilte Tabelle

    soweit ok

    welches Makro? Das von Gerhard oben?

    Wie stelle ich den Bezug zwischen der zu zerteilenden Zahl und dem Makro her? Ich könnte in der Word Vorlagendatei eine (nicht sichtbare) Tabelle einfügen wo über ein Seriendruckfeld die Zahl engespielt wird.
     
    *xdc*, 23. Juli 2024
    #8
  9. Gerhard H Erfahrener User
    Hallo xdc ,

    "Ich könnte in der Word Vorlagendatei eine (nicht sichtbare) Tabelle einfügen wo über ein Seriendruckfeld die Zahl engespielt wird." Das wäre eine Möglichkeit. Du kannst die dann über ActiveDocument.Tables(x) ansprechen, wobei die x = 1 für die die erste Tabelle im Word-Dokument steht, x = 2 für die zweite usw.

    Wenn das Dokument immer nur einen Adressaten auswirft, kann man sich im Makro die Schleife über alle Sections sparen. Wenn du beim Anpassen des Makros nicht zurecht kommst, sag Bescheid.
     
    Gerhard H, 23. Juli 2024
    #9
  10. *xdc* Neuer User
    Hallo Gerhard,

    vielen Dank! Gerne würde ich das Angebot bzgl. der Unterstützung bei der Makroerstellung annehmen. In dem Bereich bin ich zugegebener Massen noch etwas hilflos!

    Die Vorlage ist bereits durch eine Tabellenstruktur unterteilt, hier zu sehen der erste Teil der A4 docx-Datei:
    MERGEFIELD Ausgabe einer Zahl in unterteilte Tabelle upload_2024-7-23_14-48-0.png
    1 wäre ein möglicher Ort für die Tabellenzelle zum einspielen der 8-stelleigen Zahl (Die untere Zeile würde ich, sobald die Funktion getestet wurde, entsprechend auf unsichtbar setzen), Ziel der Ausgabe wäre aufgeteilt dann unter 2. Wie innerhalb von Word die Tabellen gezählt werden, gilt es vermutlich herauszufinden, da die ganze Seite voller Tabellenzellen ist und auch Tabellen in Tabellen verwendet werden. Ich hoffe an dieser Stelle, das das kein Ausschlusskriterium ist. Das Layout kann leider aufgrund der notwendigen Maschinenlesbarkeit nur eingeschränkt verändert werden.

    Es würde ggf. auch die Möglichkeit bestehen, Änderungen an der normal.dotm durchzuführen. Dazu müsste ich mit etwas Vorlauf die entsprechenden Berechtigungen einholen.
     
    Zuletzt bearbeitet: 23. Juli 2024
  11. Gerhard H Erfahrener User
    Hallo xdc,

    ein Ausschlusskriterium sind verschachtelte Tabellen nicht unbedingt. Aber VBA-technisch sind sie ein veritabler Graus, besonders im Zusammenhang mit Serienbriefen, weil da die Möglichkeit wegfällt, die verschachtelte Tabelle per Textmarke zu erkennen. Ich habs jedenfalls bis jetzt nicht geschafft.

    Es wäre viel einfacher, wenn du sowohl das Seriendruckfeld als auch die Tabelle für das Aufsplitten der Nummer in Rich-Text-Inhaltssteuerelemente einfügen könntest. Ich hoffe sehr, dass dein Fachdokument damit einverstanden ist.
    Im Anhang ein einfaches Beispiel, das eine Nummer aus dem bereits zusammengemixten Serienbrief einliest und ziffernweise wieder einträgt.

    Das Makro ist hier einfachheitshalber im Dokument selber untergebracht. Die Frage: wohin damit muss ja erst noch geklärt werden.
     
    Gerhard H, 23. Juli 2024
    #11
  12. *xdc* Neuer User
    Hallo Gerhard,
    Alles klar, das funktioniert soweit sogar! Den Rich-Text-Inhaltssteuerelementen würde ich jetzt Namen vergeben, um eine eindeutige Zuordnung zu gewährleisten. Also z.B. MidIn (mit Seriendruckfeld), und MidOut (mit einer 8-zelligen Tabelle).
    Es gibt hin und wieder Einzelfälle, wo die Zahl nur 6 stellig ist. Dann wäre es natürlich schön, wenn das Makro hier keinen Fehler ausgibt, sondern einfach mit dem arbeitet, was da ist.
     
    Zuletzt bearbeitet: 24. Juli 2024
  13. Gerhard H Erfahrener User

    MERGEFIELD Ausgabe einer Zahl in unterteilte Tabelle

    Hallo nochmal,

    zwei kleine Anmerkungen:

    "Namen" gibt es nicht bei den Inhaltssteuerelementen, sondern nur Tags oder Titel. Was du verwendest, ist egal. Groß|Kleinschreibung wird berücksichtigt. Wenn du Titel nimmst, heißt die Makrozeile halt ...SelectContentControlsByTitle....

    Bei mir gibts keine Fehlermeldung bei sechsstelligen Zahlen, denn die Schleife geht von 1 bis len(Kennziffer). Die letzten Tabellenzellen werden dann halt einfach nicht ausgefüllt.
     
    Gerhard H, 24. Juli 2024
    #13
  14. *xdc* Neuer User
    ok,
    hatte ich gemeint. Ich habe jetzt Title bezeichnet, das Feld Tag wurde automatisch mit dem gleichen Inhalt gefüllt.
    MERGEFIELD Ausgabe einer Zahl in unterteilte Tabelle upload_2024-7-24_11-48-3.png
    Das Makro bekomme ich allerdings nicht selber hin.
     
  15. Gerhard H Erfahrener User
    Hach,
    hab ich etwa vergessen, das Dokument mit dem Makro anzuhängen? Das hol ich hiermit nach und stell das Makro zusätzlich als Text hier rein:
    Code:
    Sub kennzahlSplitten()
    Dim kennzahl As String, laenge As Long, i As Long
    Dim ziffer As String
    Dim tabelle As Table
    
    'einlesen:
    kennzahl = ActiveDocument.SelectContentControlsByTag("gesamt").Item(1).Range.Text
    laenge = Len(kennzahl)
    
    'splitten und eintragen:
    Set tabelle = ActiveDocument.SelectContentControlsByTag("einzeln").Item(1).Range.Tables(1)
    tabelle.Select
    
    For i = 1 To laenge
        ziffer = Mid(kennzahl, i, 1)
        tabelle.Cell(1, i).Range = ziffer
    Next i
    End Sub
    
    Hinweis: Im Steuerelement muss über der Tabelle zwingend mindestens ein Absatz stehen, sonst wird beim Versuch des Eintragens der Ziffern in die Tabelle das Steuerelement gelöscht. Warum das so ist weiß ich nicht.
     
    Gerhard H, 24. Juli 2024
    #15
Thema:

MERGEFIELD Ausgabe einer Zahl in unterteilte Tabelle

Die Seite wird geladen...
  1. MERGEFIELD Ausgabe einer Zahl in unterteilte Tabelle - Similar Threads - MERGEFIELD Ausgabe Zahl

  2. Serienbrief Mergiefeld Datum verdreht

    in Microsoft Excel Hilfe
    Serienbrief Mergiefeld Datum verdreht: Hallo Meine Aufgabe, aus einer Excel einen Serienbrief mit Geburtsdaten zu erstellen, ging in die Hose. Die Geburtsdaten waren mit zB. "12.3.2007" und die Ausgabe bei { MERGEFIELD «Geb»\@»d. MMMM...
  3. Uhrzeit ohne NULL aus Datenbank ausgeben

    in Microsoft Word Hilfe
    Uhrzeit ohne NULL aus Datenbank ausgeben: Mein erster Beitrag (Thema), bitte um Nachsicht falls ich etwas falsch mache. Folgende Frage: wir übernehmen aus einer Datenbank Uhrzeiten. Ausgabe IST: z.B. 09.15, 08.00, 17.00 etc... Ausgabe...
  4. Update Fields Problem mit MergeBarcode

    in Microsoft Word Hilfe
    Update Fields Problem mit MergeBarcode: Hallo zusammen, ich hoffe ihr könnt mir bei meinem Problemchen weiterhelfen. Die Googlesuche war nicht sehr hilfreich bisher. Und zwar verwenden wir in unserer Mailing Maschine die Mergefields...
  5. Mehrzeilige Firmierung Serienbrief

    in Microsoft Word Hilfe
    Mehrzeilige Firmierung Serienbrief: Guten Morgen, ich habe leider Probleme die Merzeilige Firmierung im Adressfeld eines Serienbriefes einzusetzen, ich hoffe dass einer von euch mir helfen kann. Vielen Dank im Voraus dafür. Die...
  6. Mergefield Zahl ohne Dezimalstellen ausdrücken

    in Microsoft Word Hilfe
    Mergefield Zahl ohne Dezimalstellen ausdrücken: Hallo, kann mir jmd. erklären, wie ich bei der Serienbrieffunktion in Word den von Excel einzufügenden Datensatz - wenn es eine Zahl ist - so in Word einstelle, dass eine ganze Zahl und nicht...
  7. Mergefield mit mehreren Datensätzen

    in Microsoft Word Hilfe
    Mergefield mit mehreren Datensätzen: Die Daten werden von einer Kalkulationssoftware (Access basierend) importiert. Das Mergefield im Word sieht wie folgt aus: { MERGEFIELD "Anzahl" } Die Ausgabe ist z.B.: 4 1 Der Wert...
  8. Serienbrief - Dynamische Tabelle anhand von Mergefield verändern - Word 2010

    in Microsoft Word Hilfe
    Serienbrief - Dynamische Tabelle anhand von Mergefield verändern - Word 2010: Servus, ich steh vor einem großen Problem und hoffe, dass mir hier jemand helfen kann. Background Story: Ich habe einen Serienbrief in Word erstellt anhand von Daten aus einem...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden