ich kämpfe wieder mal mit den Schwierigkeiten Microsoftscher Zwischenablagen und der Zusammenarbeit zwischen Word und Excel.
Per
insertRange doc, X02.Range("B2:I224"), wdPasteHTML
und dem Sub:
Private Sub insertRange(doc As Word.Document, rng As Excel.Range, Optional lngType As Long = _
wdPasteEnhancedMetafile)
rng.Copy
doc.Windows(1).Selection.PasteSpecial Placement:=wdInLine, DataType:=lngType
End Sub
füge ich eine Tabelle vom Excel Arbeitsblatt X02 in ein geöffnetes Word Dokument an eine Bookmark (... doc.Bookmarks("A2").Select ....) ein. Das funzt soweit auch ganz ok. Die Schwierigkeit dabei ist, dass Word die Tabelle offensichtlich anders formatiert als Excel. Die Spaltenbreite wird dabei geändert und die Tabelle wird in Word viel zu breit. Es nützt dabei nur bedingt, die Tabelle auf Excelseite vorher zu formatieren.
Die einzige Lösung die ich bisher gefunden habe, ist die Tabelle als Objekt einzufügen, denn dann wird die Formatiereung 1:1 aus Excel übernommen. Leider wird die Dateigröße des Worddokuments damit immens aufgebläht, denn das Word Dokument beiinhaltet noch einige Informationen mehr.
Meine Idee - auch wenn ich das mit meinen limitierten VBA Kenntnissen noch nicht selbst umsetzen kann, ist:
1. Die Spaltenbreiten auf Excel Seite auszulesen
2. Die Spaltenbreiten in Pixel (?) umzurechnen
3. Die Spalten der betreffenden Tabelle auf Wordseite entsprechend zu formatieren.
Hat jemand eine Idee wie man das macht?
Vielen Dank im Voraus
Matthias_P