Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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

Geöffnetes Word-Formular mit Excel-daten füllen

Geöffnetes Word-Formular mit Excel-daten füllen
02.10.2023 15:34:41
Nicole111
Hallo,

Ich habe in Excel eine Liste angefertigt, deren Daten ich in verschiedene Word-Vorlagen eintragen möchte. Das Auswählen und Öffnen der Word-Dateien funktioniert. Auch das Befüllen einer Word-Datei über Textmarken, samt Speichern funktioniert. Beides zusammen leider nicht, da ich, so vermute ich, nicht die Verbindung zwischen dem aktiven Word-Dokument und meiner Excel herstellen kann. Hier schon an verschiedener stelle gepostete Lösungen haben mir nicht weitergeholfen. Vielleicht ist dazu aber auch mein Wissen noch zu gering, um es zu adaptieren.
Es wäre super, wenn mir hier jemand Starthilfe geben könnte.

Hier mein Code:
Sub opendocument()

'Word-Datei öffnen
Dim wb As Workbook
'Dim ws As Worksheet
Dim lngZ As Long

Dim AppWD As Object
Dim fn
fn = Application.GetOpenFilename("Word-Dokumente, *.doc*", , "Bitte Datei auswählen")
If fn = False Then Exit Sub 'Abbrechen gedrückt
Set AppWD = CreateObject("Word.Application") 'Word als Object starten
AppWD.Visible = True
AppWD.Documents.Open fn
Set AppWD = Nothing

'Mit geöffneter Word-Applikation connecten
Set AppWD = GetObject(, "Word.Application")


'Bibliothek aktivieren
Dim doc As Word.Document
Dim Zeile As Long

Zeile = ActiveCell.Row

'Word-Datei mit Excel-daten befüllen
doc.Bookmarks("Titel").Range.Text = WSProjektdaten.Cells(Zeile, 1).Value
doc.Bookmarks("Projektname").Range.Text = WSProjektdaten.Cells(Zeile, 2).Value
doc.Bookmarks("Gebäude").Range.Text = WSProjektdaten.Cells(Zeile, 3).Value
doc.Bookmarks("Straße").Range.Text = WSProjektdaten.Cells(Zeile, 4).Value
doc.Bookmarks("PLZOrt").Range.Text = WSProjektdaten.Cells(Zeile, 5).Value
doc.Bookmarks("Errichter").Range.Text = WSProjektdaten.Cells(Zeile, 7).Value
doc.Bookmarks("Teilnehmer1").Range.Text = WSProjektdaten.Cells(Zeile, 8).Value
doc.Bookmarks("Teilnehmer2").Range.Text = WSProjektdaten.Cells(Zeile, 9).Value
doc.Bookmarks("Teilnehmer3").Range.Text = WSProjektdaten.Cells(Zeile, 10).Value
doc.Bookmarks("Datum").Range.Text = Date

'Word-Datei abspeichern
doc.saveAS2 ThisWorkbook.Path & " " & WSProjektdaten.Cells(Zeile, 11).Value & "_" & WSProjektdaten.Cells(Zeile, 6).Value & "_" & WSProjektdaten.Cells(Zeile, 3).Value & ".docx"


End Sub

VG
Nicole

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Geöffnetes Word-Formular mit Excel-daten füllen
02.10.2023 16:10:02
onur
Offenbar hast du drei Codes im Netz gefunden und erfolglos versucht, sie zu kombinieren....
Ungetestet:
Sub opendocument()

'Word-Datei öffnen
Dim wb As Workbook
Dim lngZ As Long
Dim Zeile As Long
Dim WSProjektdaten
Zeile = ActiveCell.Row
Set WSProjektdaten = ActiveSheet
Dim AppWD As Object
Dim fn

fn = Application.GetOpenFilename("Word-Dokumente, *.doc*", , "Bitte Datei auswählen")
If fn = False Then Exit Sub 'Abbrechen gedrückt
Set AppWD = CreateObject("Word.Application") 'Word als Object starten
AppWD.Visible = True
AppWD.Documents.Open fn
'Word-Datei mit Excel-daten befüllen
With WSProjektdaten
AppWD.Bookmarks("Titel").Range.Text = .Cells(Zeile, 1).Value
AppWD.Bookmarks("Projektname").Range.Text = .Cells(Zeile, 2).Value
AppWD.Bookmarks("Gebäude").Range.Text = .Cells(Zeile, 3).Value
AppWD.Bookmarks("Straße").Range.Text = .Cells(Zeile, 4).Value
AppWD.Bookmarks("PLZOrt").Range.Text = .Cells(Zeile, 5).Value
AppWD.Bookmarks("Errichter").Range.Text = .Cells(Zeile, 7).Value
AppWD.Bookmarks("Teilnehmer1").Range.Text = .Cells(Zeile, 8).Value
AppWD.Bookmarks("Teilnehmer2").Range.Text = .Cells(Zeile, 9).Value
AppWD.Bookmarks("Teilnehmer3").Range.Text = .Cells(Zeile, 10).Value
AppWD.Bookmarks("Datum").Range.Text = Date
'Word-Datei abspeichern
AppWD.saveAS2 ThisWorkbook.Path & " " & Cells(Zeile, 11).Value & "_" & .Cells(Zeile, 6).Value & "_" & .Cells(Zeile, 3).Value & ".docx"
End With
End Sub
Anzeige
AW: Geöffnetes Word-Formular mit Excel-daten füllen
04.10.2023 07:32:13
Nicole111
Vielen Dank, onour, der Code funktioniert leider nicht-er bleibt beim Befüllen des ersten Bookmarks stehen.
AW: Geöffnetes Word-Formular mit Excel-daten füllen
02.10.2023 16:48:52
Ulf


Sub opendocument()
'Word-Datei öffnen
Dim wb As Workbook
'Dim ws As Worksheet
Dim lngZ As Long
Dim AppWD As Object
Dim doc As Word.Document
Dim Zeile As Long
Dim fn
fn = Application.GetOpenFilename("Word-Dokumente, *.doc*", , "Bitte Datei auswählen")
If fn = False Then Exit Sub 'Abbrechen gedrückt
Set AppWD = CreateObject("Word.Application") 'Word als Object starten
AppWD.Visible = True
set doc=AppWD.Documents.add( fn)
'Bibliothek aktivieren
Zeile = ActiveCell.Row
'Word-Datei mit Excel-daten befüllen
doc.Bookmarks("Titel").Range.Text = WSProjektdaten.Cells(Zeile, 1).Value
doc.Bookmarks("Projektname").Range.Text = WSProjektdaten.Cells(Zeile, 2).Value
doc.Bookmarks("Gebäude").Range.Text = WSProjektdaten.Cells(Zeile, 3).Value
doc.Bookmarks("Straße").Range.Text = WSProjektdaten.Cells(Zeile, 4).Value
doc.Bookmarks("PLZOrt").Range.Text = WSProjektdaten.Cells(Zeile, 5).Value
doc.Bookmarks("Errichter").Range.Text = WSProjektdaten.Cells(Zeile, 7).Value
doc.Bookmarks("Teilnehmer1").Range.Text = WSProjektdaten.Cells(Zeile, 8).Value
doc.Bookmarks("Teilnehmer2").Range.Text = WSProjektdaten.Cells(Zeile, 9).Value
doc.Bookmarks("Teilnehmer3").Range.Text = WSProjektdaten.Cells(Zeile, 10).Value
doc.Bookmarks("Datum").Range.Text = Date
'Word-Datei abspeichern
doc.saveAS2 ThisWorkbook.Path & " " & WSProjektdaten.Cells(Zeile, 11).Value & "_" & WSProjektdaten.Cells(Zeile, 6).Value & "_" & WSProjektdaten.Cells(Zeile, 3).Value & ".docx"

set doc=nothing
Set AppWD = Nothing
End Sub
Anzeige
AW: Geöffnetes Word-Formular mit Excel-daten füllen
04.10.2023 07:47:23
Nicole111
Ulf, Du hast den Preis gewonnen, der Code funktioniert! Vielen Dank!
Könntest Du mir noch helfen, einen Ordner vorauszuwählen, in dem sich alle Word-Vorlagen befinden? Ich hatte es mit:
Const Drive = "C:"
Const Folder = "Vorlagen "
erfolglos versucht.
AW: Geöffnetes Word-Formular mit Excel-daten füllen
03.10.2023 13:27:51
snb
Verzichte auf 'bookmarks', die gibt es nur für das UI.
In VBA verwendet man Docvariables.

Wenn es schon eine Vorlage gibt mit Docvariablen (z.B." G:OFBeispiel.docx") kann man die öffnen und bearbeiten.
Wenn es keine Vorlage gibt kann die in diesem Code erstellt werden.
Ich setze Fieldnames in der erste Zeile des Excel Arbeitsblattes voraus.

Sub M_snb()

sn = Sheet1.Cells(1).CurrentRegion

With GetObject(IIf(Dir("G:OFbeispiel.docx") = "", "word.document", "G:OFbeispiel.docx"))
For j = 2 To UBound(sn)
For jj = 1 To UBound(sn, 2)
If .Fields.Count = 0 Then .Content = String(UBound(sn, 2), vbCr)
If .Fields.Count UBound(sn, 2) Then .Fields.Add .Paragraphs(jj).Range, 64, sn(1, jj), False
.variables(sn(1, jj)) = sn(j, jj)
Next
.Fields.Update
.Windows(1).Visible = True
.saveas2 "G:OFbeispiel_" & Format(j, "000") & ".docx"
.Windows(1).Visible = False
Next
End With
End Sub



Anzeige
AW: Geöffnetes Word-Formular mit Excel-daten füllen
04.10.2023 07:51:59
Nicole111
Vielen Dank, snb! Es funktioniert erst einmal mit den Bookmarks. Ich stehe ganz am Anfang mit VBA, da ist das erste Ziel die Pflicht zu erfüllen. Wenn ich da etwas sattelfester bin, gehe ich gerne in die Kür und probiere Deinen Weg.
AW: Geöffnetes Word-Formular mit Excel-daten füllen
03.10.2023 15:20:53
snb
Sub M_snb()

sn = Sheet1.Cells(1).CurrentRegion

If Dir("G:OFbeispiel.docx") > "" Then
Set it = GetObject("G:OFbeispiel.docx")
Else
Set it = CreateObject("word.application").documents.Add
End If

With it
For j = 2 To UBound(sn)
For jj = 1 To UBound(sn, 2)
If .Fields.Count = 0 Then .Content = String(UBound(sn, 2), vbCr)
If .Fields.Count UBound(sn, 2) Then .Fields.Add .Paragraphs(jj).Range, 64, sn(1, jj), False
.variables(sn(1, jj)) = sn(j, jj)
Next
.Fields.Update
.Windows(1).Visible = True
.saveas2 "G:OFbeispiel_" & Format(j, "000") & ".docx"
.Windows(1).Visible = False
Next
End With
End Sub
Anzeige
AW: Geöffnetes Word-Formular mit Excel-daten füllen
02.10.2023 18:27:50
JOWE
Korrektur des Hinweises unterhalb der Schaltfläche:
"Die Zellen A2 bis K2 müssen gefüllt sein"
AW: Geöffnetes Word-Formular mit Excel-daten füllen
04.10.2023 07:34:02
Nicole111
Vielen Dank Jochen, für Deine Mühen. Würdest Du bitte den Code ins Forum posten? ich lade ungern "fremde" zips herunter. ;)
AW: Geöffnetes Word-Formular mit Excel-daten füllen
04.10.2023 09:50:33
JoWE
Hallo Nicole,

aber eine Excel-Arbeitsmappe mit Makrocode von einer unbekannten Quelle lädst Du Dir herunter?
Nun gut dann halt so:
https://www.herber.de/bbs/user/163235.xlsm
https://www.herber.de/bbs/user/163236.doc
Achtung: Eigentlich sollte es eine -docx sein; jedoch ist es wohl unzulässig dieses Format hochzuladen

Gruß
Jochen
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige