Clever-Excel-Forum

Normale Version: VBA- Word Datei erstellen und Bookmarks füllen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag zusammen,

ich habe folgendes Problem. Excel soll in mehrere Word Dateien Kontrollkästchen und Textmarken füllen.
Die gefüllte Word Dateien sollen dann in einem bestimmten Pfad abgespeichert werden.
Die Grund Word Dateien sollen also nur als Vorlage dienen.

Ich kriege es nicht hin, dass er einfach ein Objekt erstellt und die Word Datei als Vorlage nutzt und
nach füllen der Bookmarks (Kontrollkästchen, Textmarken etc.) es abspeichert unter einem anderen Pfad/Namen.

Hier mein bisheriger Versuch:
Code:
Sub test()

 Dim xDoc As String
 Dim appWord As Object
 Dim objDocument As Object
 
 xDoc = ThisWorkbook.Path & "\" & "Inhaltsverzeichnis.docm"


Set appWord = CreateObject("Word.Application")
Set objDocument = appWord.Documents.Open(Filename:=xDoc)
   'objDocument.Visible = False

With objDocument

       ' Prüfe, ob die Textmarke vorhanden ist
       If .Bookmarks.Exists("KK1") = True Then
           .FormFields("KK1").CheckBox.Value = True
       End If
       
       If .Bookmarks.Exists("KK2") = True Then
           .FormFields("KK2").CheckBox.Value = True
       End If

End With
           'Dokument speichern im Pfad+Name
           objDocument.SaveAs Filename:=ThisWorkbook.Path & "\" & "Hat_geklappt.doc"
           ' Dokument schliessen
           objDocument.Close
           appWord.Quit
           
End Sub

Ich habe eine Excel Datei mit dem Code angefügt unter Modul1 und eine Beispiel Word Datei Namens "Inhaltsverzeichnis"


Wenn du bis hierhin schon gelesen hast, dann Danke!
Hallöchen,

ich habe erst mal bis dorthin gelesen Smile

Zuerst mal nur ein kleiner Hinweis. Wenn Du unsere Suche nutzt, Stichwort Bokkmarks, findest Du u.a. das:
http://www.clever-excel-forum.de/thread-...+bookmarks

Beim Speichern erzeugst Du eine doc. Eine Vorlage im alten Format wäre dot, fürs aktuelle Word würde ich aber eine dotm erzeugen, wenn die Makros enthalten soll, oder ohne als docx. Verwenden tust Du die dann mit
appWord.Documents.Add "LW:\Pfad\dateiname.dotx"
Wenn du Formfields verwendest brauchst du keine Bookmarks.
Wenn du Bookmarks verwendest braucht du keine Formfields.
Wenn du VBA verwendest kannst du besser Docvariables verwenden als Bookmarks.

Wie das gehen könnte in deiner Datei:
Code:
Sub M_snb()
   For j = 1 To ActiveDocument.FormFields.Count
      Select Case ActiveDocument.FormFields(j).Type
      Case 70
         ActiveDocument.FormFields(j).Range.Text = "T" & j
      Case 71
         ActiveDocument.FormFields(j).CheckBox.Value = True
      End Select
   Next
End Sub

@Schauan

Man kann auch sehr einfach ein .docx als Vorlage benützen (wenn Erbung von autotextentries, styles, makros nicht im Frage ist):

Code:
with documents.add("G:\OF\beispeil.docx")

end with
Vielen Dank euch zwei!

Hab die Suchfunktion genutzt, habe auch genau den Thread gefunden,
hatte aber da etwas dann durcheinander gemischt,
weshalb die ganze Sache bei mir nicht mehr ging.

Danke Snb für den Vorschlag mit den FormFields, werde ich mir mal genauer ansehen.

Gruß Joe :19: