Office - Word, Excel und Co. 9.753 Themen, 41.606 Beiträge

Wordtextformularfelder

cayi / 5 Antworten / Baumansicht Nickles

Ich möchte gerne einen Word-Serienbrief auch als Formular verwenden. Das Dokument ist mit einer Datenbank verknüpft und die Formularfelder sind eingefügt. Sowie ich nun die Serienbrieffunktion aktiviere, werden mir im Formular sämtliche Textformularfelder rausgeschmissen und in fünf Leerstellen umgewandelt. Die anderen Formularfelde, wie Dropdown oder Kontrollkästchen bleiben erhalten. Leider habe ich bisher keinen Weg finden können, wie ich das ändern kann, dass auch die Textformularfelder erhalten bleiben. Also dachte ich, wäre doch geschickt diese Felder durch Suchen und Ersetzen wieder zu korrigieren, doch leider gibt es scheinbar keine Möglichkeit nach Text (Leerstellen) zu suchen und diese ersetzen zu lassen durch Formularfelder. Nun, vielleicht dann durch ein Makro, doch wie müsste das dann aussehen? Weiß hier jemand einen Rat?

bei Antwort benachrichtigen
Kolti cayi „Wordtextformularfelder“
Optionen

Beides zusammen geht nicht.

bei Antwort benachrichtigen
cayi Kolti „Beides zusammen geht nicht.“
Optionen

Nun, das habe ich auch festgestellt, doch es wäre eine große Hilfe, wenn ich wüsste, wie ein Makro aussehen müsste, um Text (in diesem Fall Leerstelle) durch Textformularfelder zu ersetzen.

bei Antwort benachrichtigen
Uli M cayi „Wordtextformularfelder“
Optionen

Es wird dir für deinen Fall wohl trotzdem nicht viel nützen:

Sub TextDurchFfErsetzen()
Const ksSuche = "Formularfeld" ' dein Suchtext
Dim objMerk As Range
Dim objFf As FormField
Dim I As Integer
Set objMerk = Selection.Range
ActiveDocument.Range(0, 0).Select
With Selection.Find
.ClearFormatting
.Text = ksSuche
.Wrap = wdFindStop
.Forward = True
' ggf. weiteres (etwa von letzter Suche)
Do While .Execute
I = I + 1
Set objFf = ActiveDocument.FormFields.Add(Selection.Range, 70) ' Text-Formularfeld
' jetzt Eigenschaften nach Bedarf einstellen
With objFf
.Name = "Ff" & Trim(Str(I))
.Enabled = True
.TextInput.Width = 1000
.TextInput.Default = "Formularfeld " & Str(I)
End With
Loop
End With
objMerk.Select
End Sub

bei Antwort benachrichtigen
cayi Nachtrag zu: „Wordtextformularfelder“
Optionen

Stimmt! Leider funktioniert es nicht, doch möglicherweise benutze ich das Makro falsch. Ich suche im Prinzip nach fünf Leerstellen und in der SuchenErsetzen-Funktion müsste ich nach einem Mustervergleich suchen. Wo in Deinem Makro müsste ich das unterbringen?
Solltest Du keine weitere Lösung wissen, möchte ich mich dennoch für Deine Mühe bedanken!

bei Antwort benachrichtigen
Uli M cayi „Wordtextformularfelder“
Optionen

Passe die Konstante ksSuche an. Einen Mustervergleich brauchst du m.E. nicht. Zusätzlich kannst du aber den Bereich des´Textformularfeldes speziell formatieren (z.B. mit neutraler Zeichen-FV) und danach zusätzlich suchen.
Wenn du unbedingt auf die Kombi Ff-Felder / Seriendruck setzen willst, wäre es vielleicht sinnvoller, sich die Inhalte der Ff-Felder vor dem Seriendruck zu merken um sie danach rekonstruieren zu können.

bei Antwort benachrichtigen