Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1596to1600
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel & Word: Formfields füllen, Laufzeitfehler 59

Excel & Word: Formfields füllen, Laufzeitfehler 59
29.12.2017 16:03:06
Mike
Moin zusammen!
Ich bastel hier daran, mit Ergebnisdaten aus einer Excel-Tabelle die Wordvorlage einer Einzelprüfkarte für das Deutsche Sportabzeichen zu befüllen und habe dabei ein sehr merkwürdiges Phänomen:
Mit
Pfad = Application.ActiveWorkbook.Path
Datei = Pfad & "\EPK.doc"
Dim wordObj As Word.Application
Set wordObj = CreateObject("Word.Application")
wordObj.Visible = True
wordObj.Documents.Open Datei
bekomme ich die Prüfkarte auch problemlos aus Excel heraus geöffnet. Wenn ich dann aber mit
wordObj.Selection.FormFields("Nachname").Result = Nachname
gleich das erste Feld mit Inhalt füllen möchte, dann bekomme ich die Fehlermeldung:
"Laufzeitfehler '5941': Das angeforderte Element ist nicht in der Sammlung vorhanden"
Ok, die Fehlermeldung ist eindeutig, er findet also das Formfield "Nachname" nicht. Aber jetzt wird es spannend:
Ich bin noch im Debug-Modus und lasse ich mir dann im geöffneten Worddokument die Eigenschaften des Felds "Nachname" nur anzeigen, ich ändere nichts! Wenn ich jetzt das Makro weiterlaufen lasse, dann meckert Excel nicht mehr und befüllt das Feld als wäre nie etwas gewesen! Und das passiert mit jedem Formfield...
So langsam bin ich echt ratlos, aber vielleicht hat ja hier jemand die zündende Idee...
Danke im Voraus und guten Rutsch,
Mike

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

Betreff
Datum
Anwender
Anzeige
AW: Excel & Word: Formfields füllen, Laufzeitfehler 59
29.12.2017 16:17:02
Sepp
Hallo Mike,
das Problem liegt sicher an .Selection!
Probier mal.

Pfad = Application.ActiveWorkbook.Path
Datei = Pfad & "\EPK.doc"
Dim wordObj As Word.Application, objDoc as Object
Set wordObj = CreateObject("Word.Application")
wordObj.Visible = True
Set objDoc = wordObj.Documents.Open(Datei=
objDoc.FormFields("Nachname").Result = Nachname
Gruß Sepp

DANKE!
29.12.2017 16:30:32
Mike
DANKE, Sepp!
Du hast mir den Jahreswechsel gerettet! ;-)
Das hat sowas von geholfen... manchmal sieht man den Wald vor lauter Bäumen nicht ;-)
Gruß,
Mike
Anzeige
Update AW: DANKE!
30.12.2017 14:02:28
Mike
Hi!
Dank Sepp's Hilfe klappt das mit dem Formular ja nun richtig prima, aber:
Es müsste doch auch so gehen, dass ich die Felder in dem Word-Dokument ansprechen kann, wenn ich es in einem Tabellenblatt einbette, oder? Hätte den großen Vorteil, dass ich den Nutzern nicht 2 Dateien (xls und doc) mitgeben muss sondern nur eine...
Gruß,
Mike
Excel-eingebettete Word-Datei per VBA bearbeiten
31.12.2017 18:10:49
fcs
Hallo Mike,
ich hab ein wenig rumgesucht, um die richtigen Objekte zu finden mit denen man an die eingebettete Word-Datei heranzukommt.
Gruß
Franz
Sub ExcelWord_intern()
Dim Pfad, Datei
Dim wdDoc As Object 'Word.Document
Dim wks As Worksheet
Dim Zeile As Long
Dim wksWd As Worksheet, ShapeWd As OLEObject
Set wks = ActiveWorkbook.Worksheets("Tabelle1") 'Tabellenblatt mit Daten für Worddatei
Set wksWd = ActiveWorkbook.Worksheets("Wordvorlage") 'Tabellenblattmit eingebetteter  _
Worddatei
Pfad = Application.ActiveWorkbook.Path
'eingebettetes Word-OLE-Object setzen
Set ShapeWd = wksWd.OLEObjects(1)
'Word-Object öffnen
ShapeWd.Verb Verb:=xlOpen
'eingebettetes Word-Object einer Variablen zuweisen
Set wdDoc = ShapeWd.Object
With wks
For Zeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
wdDoc.FormFields("Vorname").Result = .Cells(Zeile, 1).Text 'Vorname
wdDoc.FormFields("Nachname").Result = .Cells(Zeile, 2).Text 'Nachname
Datei = Pfad & "\" & .Cells(Zeile, 2).Text & "-" & .Cells(Zeile, 1).Text
'als Word (doc) speichern
'            wdDoc.SaveAs2 Filename:=Datei, FileFormat:=0 '0 = wdFormatDocument
'alsPDF speichern
wdDoc.ExportAsFixedFormat outputfilename:=Datei & ".pdf", exportformat:=17 _
'17=wdExportFormatPDF
'druken
'            wdDoc.PrintOut
Next
End With
wdDoc.Application.Quit
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige