Erneuter Versuch
(ich weiß leider nicht, wie ich meinen anderen Beitrag von vorhin hier löschen kann).
Inzwischen bin ich mit meinem Code weiter.
Vielleicht kann mir ja hierbei jemand helfen.
Ich möchte über For-Schleife Texte aus Excel nach Word kopieren und zwar an die dort angegebenen Textmarken (die so heißen wie der Zellinhalt in Spalte c, den ich dann per For-Schleife ablaufe).
Das Word Dokument hat eine zweispaltige Tabelle als Grundlage, mehrere Zeilen...
Das klappt eigentlich alles soweit, bis auf folgendes:
Eigentlich sind Textmarke "b3" und "b4" direkt übereinander in einem gemeinsamen Textfeld der Tabelle. Erst b3, darunter b4. Getrennt mit zwei Zeilenumbrüchen (soll hinterher eine Leerzeile drin sein).
Die Schleife wird durchlaufen, alles wird eingelesen, kopiert, gespeichert und beendet.
Keine Fehlermeldung so weit....
Leider ist nachher im fertigen End-Produkt (docx) der Text für Textmarke b3 zwar an der richtigen Stelle im richtigen Textfeld der Tabelle, aber der text von b4 befindet sich jetzt zwischen der Zeile der Tabelle darüber und der zeile der tabelle, wo er hin soll (also quasi "zwischen" der Tabelle, wo vorher nichts war. Ebenso wurde ein "fester" Text in der Vorlage gelöscht, der unmittelbar im selben Feld direkt zwei Zeilen über b3 stand.
vielleicht etwas wuselig? Ich hoffe, ich konnte mich irgendwie verständlich ausdrücken und ihr seid nicht schon an dieser Stelle gestresst ;-).
Ich würde gerne mit Schleife arbeiten (auslesen der Textmarken-Namen in Spalte c und dann copy/paste nach Word), um das Dokument flexibel zu halten.
Mein Code:
Set wb = Workbooks.Open(strPfad & strDateiname)
XLSDateiname = Left(wb.Name, Len(wb.Name) - 4)
On Error Resume Next
Set WordObj = GetObject("Word.Application")
If Err.Number <> 0 Then
Err.Clear
Set WordObj = CreateObject("Word.Application")
Else
WordObj.Activate
End If
WordObj.Application.Documents.Open PfadUndName
letztezeile = wb.Sheets(1).Cells(Rows.Count, 3).End(xlUp).Row
For i = 1 To letztezeile
bookmVal = wb.Sheets(1).Range("C" & i).Value
If bookmVal <> "" Then
Set rngExcel = wb.Sheets(1).Range("B" & i)
rngExcel.Copy
Set rngWord = WordObj.ActiveDocument.Bookmarks(bookmVal).Range
rngWord.Paste
End If
Next i
'Word schließen und speichern
WordObj.ActiveDocument.SaveAs Filename:=strPfad & "(" & Tagesdatum & ") " & XLSDateiname & ".doc"
WordObj.Application.Quit (True)
Set WordObj = Nothing
'Excel speichern und schließen
wb.SaveAs Filename:=strPfad & "(" & Tagesdatum & ") " & XLSDateiname & ".xls"
wb.Close savechanges:=False
strDateiname = Dir
Loop
Set wb = Nothing
Set WordObj = Nothing
P.S.
Ich nutze die copy/paste Methode, weil ich die Text-Formatierungen in Excel brauche
Wer auch immer sich herablässt mir zu helfen: Danke schon jetzt :-)