Microsoft Excel

Herbers Excel/VBA-Archiv

FormFields automatisch doppelt befüllen


Betrifft: FormFields automatisch doppelt befüllen
von: Stefanie Martin
Geschrieben am: 28.11.2018 14:49:10

Hallo,
Ich brauche mal wieder Hilfe. Ich habe eine Exceltabelle aus der ich automatisch eine Word-Vorlage befülle. Jetzt habe ich das PRoblem, dass ein Fehler kommt, wenn ein Text länger als 255 Zeichen ist.
Nach einiger Google Suche habe ich ein Makro gefunden, dass das Formfield mit den ersten 255 Zeichen befüllt und dann das gleiche Textfeld mit den nächsten 255 Zeichen befüllt, allerdings funktioniert das bei mir nicht.
Deshalb meine zwei Fragen:
1. gibt es die möglichkeit, dass mehr als 255 Zeichen eingetragen warden? (Im Word Dokument ist das Formfield auf Unbegrenzt setzt)
Oder
2. Was muss ich in dem Code ändern, dass das getrennte eintragen bei mir funktioniert?

Auschnitt aus meinem Code, für Punkt 1:

wdDok.FormFields("Testerwartung").result = Cells(i, Testerwartung.Column).Value
Ausschnitt aus meinem Code für Punkt 2:
 str = Cells(i, Testerwartung.Column).Value
            filltext = str
            lenfilltext = Len(filltext)
            FirstBit = Left(filltext, 255)
            If lenfilltext > 255 Then
            secondbit = Mid(filltext, 256, lenfilltext - 255)
            wdDok.FormFields("testerwartung").Result = FirstBit
            Selection.Goto what:=wdGoToBookmark, Name:="Testerwartung"
            Selection.InsertAfter secondbit
            wdDok.FormFields.Add("Testerwartung").Result = secondbit
            Else
            wdDok.FormFields("testerwartung").Result = filltext
            End If

Ich habe die Info's von hier kopiert:
"https://www.ms-office-forum.net/forum/archive/index.php?t-141623.html"


Ich hoffe, mir kann einer helfen.
Vielen Dank schonmal
Grüße
Steffi

  

Betrifft: AW: FormFields automatisch doppelt befüllen
von: Michael G.
Geschrieben am: 28.11.2018 17:31:29

Hallo Steffi,

das ist ein Bug in Word. Das Formfield kann nur 255 Zeichen aufnehmen, ob nun über eine oder zwei Variablen. Du müsstest ein zweites Feld z.B. Testwartung2 anlegen und im Falle größer 255 Zeichen den String Secondbit dort ablegen. Es soll zwar einen Umweg über das Clipboard geben, ist aber frickelig

Alternativ kannst du im Worddokument eine ganz normale Textmarke 'Testwartung' anlegen (über Menü Einfügen/Textmarke) und beschreibst diese Textmarke aus Excel heraus über wdDok.Bookmarks("Testwartung").Range = str

Gruß Micha