Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: In eingebettetem Word-Formular Felder füllen

In eingebettetem Word-Formular Felder füllen
08.01.2018 10:53:28
Mike
Moin zusammen!
Ich hatte vor kurzem schon mal das Problem, Formularfelder in einem Word-Dokument anzusprechen, was ja hier ratz-fatz gelöst wurde.
Jetzt möchte ich das Problem gern erweitern:
Also: Gegeben ist eine Excel-Tabelle, in der ein Word-Formular eingebettet ist, welche mehrere Formfields enthält, die ich nun aus Excel heraus befüllen möchte.
Mit u.a. Code komme ich bis zur 4. Zeile. Das Tabellenblatt "PK" wird aufgerufen und das dort vorhandene Word-Objekt wird aktiviert. Word wird im Hintergrund geladen.
Wenn jetzt aber mit "ActiveDocument... "der Inhalt der Variablen "Nachname" als Ergebnis in das Formfeld "Nachname" (ja, ist vorhanden!) eingefügt werden soll, bekomme ich einen Laufzeitfehler "4605" "Die Methode 'Result' für das Objekt "FormField" ist fehlgeschlagen...
Ein Idee?
Sub test_word_formfield()
Set wordObj = Worksheets("PK").OLEObjects(1)   ' Tabellenblatt "PK" aktivieren
wordObj.Activate  'Eingebettetes Word-Doc aktivieren
Nachname = Sheets("Ergebnisse").Cells(4, 1)    ' Variable "Nachname" aus Blatt "Ergebnisse"  _
holen
ActiveDocument.FormFields("Nachname").Result = Nachname  ' Feld "Nachname" mit Variable " _
Nachname" befüllen
Set wordObj = Nothing
End Sub
Ach ja, eins noch: Wenn ich dann die Zeile im Debugger überspringe, bleibt Word im Hintergrund geöffnet. Wie bekomme ich das denn geschlossen? Ich dachte, das "Set wordobj = Nothing" würde das bewirken?
Gruß,
Mike
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In eingebettetem Word-Formular Felder füllen
08.01.2018 13:57:13
Nepumuk
Hallo Mike,
teste mal (Ich kann es nicht da ich mich mit Word nicht auskenne und daher keine Ahnung habe wie ich ein "FormField" erzeuge):
Public Sub Beisiel()
    Dim objWord As Object
    With Worksheets("PK").OLEObjects(1)
        Call .Verb(Verb:=xlOpen)
        Set objWord = .Object.Application
    End With
    With objWord.ActiveDocument
        .FormFields("Nachname").Result = Worksheets("Ergebnisse").Cells(4, 1).Value
        .Save
    End With
    Call objWord.Quit
    Set objWord = Nothing
    Call Cells(1, 1).Select
End Sub

Gruß
Nepumuk
Anzeige
AW: In eingebettetem Word-Formular Felder füllen
08.01.2018 14:33:54
Mike
Hi Nepomuk!
Danke, das klappt schon mal! Und jetzt noch dasselbe für die Checkboxen, dann bin ich happy und Du bist mein Held ;-))
Danke und Gruß,
Mike
AW: In eingebettetem Word-Formular Felder füllen
08.01.2018 15:02:36
Nepumuk
Hallo Mike,
welche Checkboxen? Wie erstellt wie anzusprechen?
Eventuell musst du dazu die Frage in einem Word-Forum stellen. Ich kenn mich da wirklich nicht aus.
Gruß
Nepumuk
Anzeige
AW: In eingebettetem Word-Formular Felder füllen
08.01.2018 16:29:26
Mike
Moin Nepomuk!
Du hast mich auf den richtigen Weg gebracht!
Den Checkbox-Status kann ich über
.Formfields(Feldname).Checkbox.Value = TRUE/FALSE
steuern!
Danke nochmal und Gruß,
Mike
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Felder in einem eingebetteten Word-Formular aus Excel ausfüllen


Schritt-für-Schritt-Anleitung

  1. Vorbereitung: Stelle sicher, dass du ein Word-Formular in einem Excel-Arbeitsblatt eingebettet hast. In diesem Beispiel wird auf das Tabellenblatt "PK" zugegriffen, wo das Word-Dokument gespeichert ist.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (dein Arbeitsbuch)" und wähle Einfügen → Modul.

  4. Code einfügen: Füge den folgenden Beispielcode in das Modul ein:

    Sub test_word_formfield()
        Dim wordObj As Object
        Dim Nachname As String
    
        Set wordObj = Worksheets("PK").OLEObjects(1)   ' Tabellenblatt "PK" aktivieren
        wordObj.Activate  ' Eingebettetes Word-Doc aktivieren
        Nachname = Sheets("Ergebnisse").Cells(4, 1)    ' Variable "Nachname" aus Blatt "Ergebnisse" holen
        ActiveDocument.FormFields("Nachname").Result = Nachname  ' Feld "Nachname" befüllen
        Set wordObj = Nothing
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, um die Formularfelder in Word auszufüllen.


Häufige Fehler und Lösungen

  • Laufzeitfehler 4605: Dieser Fehler tritt auf, wenn das angegebene Formularfeld nicht gefunden wird. Überprüfe den Namen des Formularfelds in Word und stelle sicher, dass es genau übereinstimmt.

  • Word bleibt geöffnet: Wenn Word im Hintergrund bleibt, stelle sicher, dass du den objWord.Quit Befehl nach dem Bearbeiten des Dokuments verwendest. Dieser Befehl schließt Word.

    Beispiel:

    Call objWord.Quit

Alternative Methoden

Wenn du die oben genannte Methode nicht verwenden kannst oder möchtest, gibt es auch andere Wege, ein Word-Dokument aus Excel heraus zu füllen:

  • Verwendung von Formularvorlagen: Du kannst vordefinierte Word-Formularvorlagen nutzen, die direkt in Excel aufgerufen werden.

  • Interaktive Word-Dokumente: In Word kannst du auch interaktive Dokumente erstellen, die dann über Excel befüllt werden können.


Praktische Beispiele

Hier ist ein weiteres Beispiel, wie du Checkboxen in einem Word-Formular aus Excel ansprechen kannst:

Sub CheckboxSteuern()
    Dim wordObj As Object
    Set wordObj = Worksheets("PK").OLEObjects(1)
    wordObj.Activate

    ' Checkbox befüllen
    ActiveDocument.FormFields("Checkbox1").Checkbox.Value = True  ' Setze Checkbox auf TRUE
    ActiveDocument.FormFields("Checkbox2").Checkbox.Value = False ' Setze Checkbox auf FALSE

    Set wordObj = Nothing
End Sub

Tipps für Profis

  • Fehlerbehebung: Wenn der Laufzeitfehler weiterhin auftritt, überprüfe die Sichtbarkeit der Formularfelder in Word. Manchmal sind sie nicht sichtbar, wenn das Dokument nicht im Entwurfsmodus ist.

  • Makros optimieren: Vermeide es, das gesamte Word-Dokument jedes Mal zu aktivieren. Nutze stattdessen Objekte, um die Leistung zu verbessern.

  • Formularfelder in Word: Achte darauf, dass die Formularfelder korrekt definiert sind und die richtigen Datentypen akzeptieren.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass Word-Felder korrekt befüllt werden?
Überprüfe die Namen der Formularfelder und stelle sicher, dass sie in deinem Excel-Makro genau übereinstimmen.

2. Was mache ich, wenn das Word-Dokument nicht geöffnet wird?
Stelle sicher, dass das OLE-Objekt korrekt referenziert wird und dass das Word-Dokument tatsächlich eingebettet ist.

3. Gibt es eine Möglichkeit, das Word-Dokument zu speichern, nachdem ich die Felder ausgefüllt habe?
Ja, füge einfach .Save nach dem Ausfüllen der Felder in deinen VBA-Code ein.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige