Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA- Word Datei erstellen und Bookmarks füllen
#1
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!


Angehängte Dateien
.xlsb   Word-Bookmarks.xlsb (Größe: 13,33 KB / Downloads: 4)
.docm   Inhaltsverzeichnis.docm (Größe: 21,67 KB / Downloads: 6)
Antworten Top
#2
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"
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Joe
Antworten Top
#3
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
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Joe
Antworten Top
#4
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:
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste