Hallo Rolf,
leider habe ich keine Literaturempfehlung. Ich habe meine Kenntnisse aus Foren oder eigenem Probieren. Aber vielleicht hat ein anderer Leser dieser Nachricht noch Tipps.
Gruß
Holger
Rolf schrieb am 25.09.2008 11:35:08:
Hallo Holger,
es funktioniert. Danke, du hast mit sehr geholfen. Ich muss es jetzt zwar noch ins Reine schreiben, aber die wesentlichen Dinge funktionieren. Ich rufe jetzt über Excel das Makro in der Wordvorlage auf und übertrage dann die Daten. Ich muss nur noch sehen ob ich verschiedene LV Text-?.dots anlege, oder ob es auch mit Variablen geht.
Vielleicht kannst du mir eine letzt Information geben? Mit Makroprogrammierung in Excel komme ich für meine Verhältnisse ganz gut zurecht, schließlich gibt es ja auch den Makrorekorder. Ich habe auch ein bischen Literatur, aber das Übergreifen in andere Office-Anwendung wird dort eher am Rande behandelt. Kennst du irgenwelche Literatur, die mir da weiterhelfen könnte?
Nochmal vielen Dank und freundliche Grüße
Rolf
.
Holger schrieb am 24.09.2008 12:34:35:
Hallo rolf,
in Word gibt es den Befehl PasteAndFormat. Den kannst du aber, soweit ich weiß, nur in Word ausführen, also nicht in Excel. Wenn du die relevanten Formatierungen nicht einzeln übertragen willst, müsstest du das Makro von Word aus starten. Sinngemäß also:
Set appExcel = CreateObject("excel.Application")
appExcel.Workbooks.Open FileName:="c:\testmappe.xlsx"
Documents.Add ("C:\Test.docx")
appExcel.Visible = True
For zeile = 110 To 3 Step -1
appExcel.activeworkbook.activesheet.Cells(zeile, 2).Copy
ActiveDocument.Bookmarks("Text1").Select
Selection.PasteAndFormat (wdPasteDefault)
Next zeile
Ich hoffe, dir geholfen zu haben
Holger
rolf schrieb am 23.09.2008 17:51:27:
Hallo Holger,
herzlichen Dank für deine Hilfe. Mit den Zeilenumbrüchen das klappt wunderbar. Nur die Formatierungen funktionieren nicht. Seh ich das richtig, ich muss erst das Format auslesen und dem Ergebnis entsprechend den Text formatieren?
Gruß
Rolf
Holger schrieb am 22.09.2008 14:29:45:
Hallo Rolf,
Zeilenumbrüche und Formatierungen musst du gesondert übertragen. Die Umbrüche kannst du z.B. direkt einfügen: LV_Text.Bookmarks("Text1").Text = vbCrLf + CStr(Cells(zeile, 2)). CStr habe ich eingefügt, damit du auch Zahlen ohne Fehler übertragen kannst.
Cells(zeile, 2) bedeutet eigentlich Cells(zeile, 2).Value (Haupteigenschaft). Die Formateigenschaften erhälst du z.B. über Cells(zeile, 2).Font.Name, Cells(zeile, 2).Font.Bold usw.
Gruß
Holger
Rolf schrieb am 20.09.2008 17:50:26:
Hallo zusammen,
ich benutze ein Programm, mit dem ich Text aus einer Excel Tabelle in ein Word-Dokument übertrage. Siehe Code
Sub TabelleNachWord()
Dim appWord As Object
Dim LV_Text As Object
Dim zeile As Long
Set appWord = CreateObject("Word.Application")
Set LV_Text = appWord.Documents.Add("C:\Test.dot")
appWord.Visible = True
LV_Text.Activate
For zeile = 110 To 3 Step -1
LayoutPageBreak = True
LV_Text.Bookmarks("Text1").Range.Text = Cells(zeile, 2)
Next zeile
Set LV_Text = Nothing
Set appWord = Nothing
End Sub
Nachdem der Text der ersten Zelle im Word Dokument an der Textmarke Text1 eingefügt wurde, wird der nächste Text wieder an der gleichen Textmarke, und damit vor dem vorher eingefügten Text , eingefügt.
Dadurch gehen mir die Zeilenumbrüche verloren. Außerdem werden Formatierungen, z.B. Fettdruck bei Überschriften nicht mitgenommen. Ich hab diese Lösung gewählt, weil hier die Tabelle gleich in Text umgewandelt wird. Ich brauch die Umwandlung also nicht "zu Fuß" machen.
Wer weiß eine Lösung?
Über Eure Hilfe würd ich mich freuen
mfg Rolf |