VBA:Text von Excel nach Word kopieren

Moderator: ModerationP

VBA:Text von Excel nach Word kopieren

Beitragvon MrRabbitTrick » 18. Mai 2018, 09:15

Hallo VBAler,

ich brauche bitte eine kleine Hilfestellung. Ein Schreiben aus Excel sollen nach Word kopiert und eingefügt werden. Dieser Vorgang funktioniert. Allerdings hapert es an der Formatierung des Textes in Word. Wenn ich aus Excel den Bereich (in der Regel nur A1:F36) kopiere und in Word mittels Strg+V einfüge, so wird die Formatierung übernommen und der Text bleibt auf einer Seite, wird also nicht vertikal verzerrt. Das Makro allerdings fügt nicht die Formatierung ein und der Text geht über zwei Seiten. Code und Beispieldatei sind anbei. Weiß jemand Rat? Auch die anderen xlPaste-Befehle konnten nicht helfen.

Code: Alles auswählen
Private Sub CommandButton1_Click()
Dim objDoc As Object

    Range(Cells(1, 1), Cells(Cells.Find(What:="Textbaustein", lookat:=xlPart).Row, 6)).Copy
    Set objDoc = CreateObject("Word.Application")
    objDoc.Documents.Add
    objDoc.Visible = True
    objDoc.Selection.PasteSpecial xlPasteAll

End Sub

Test_nachWordKopieren.xlsm


Viele Grüße,
Raphael
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MrRabbitTrick
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 199
Registriert: 07. Jan 2016, 14:49

Re: VBA:Text von Excel nach Word kopieren

Beitragvon MisterBurns » 18. Mai 2018, 09:44

Hallo Raphael,

Word formatiert hier den Zeilenabstand selbstständig. Ich dachte erst, die Lösung wäre eine simple Anpassung der Vorlage Normal.dot - aber ne, das reicht ja natürlich nicht.

Passe deinen Code so an:

Code: Alles auswählen
Private Sub CommandButton1_Click()
Dim objDoc As Object
Dim wdLineSpaceSingle As Boolean

    Range(Cells(1, 1), Cells(Cells.Find(What:="Textbaustein", lookat:=xlPart).Row, 6)).Copy
    Set objDoc = CreateObject("Word.Application")
    objDoc.Documents.Add
    objDoc.Visible = True
    objDoc.Selection.PasteSpecial xlPasteAll

    objDoc.Selection.WholeStory
    With objDoc.Selection.ParagraphFormat
        .SpaceBefore = 0
        .SpaceBeforeAuto = False
        .SpaceAfter = 0
        .SpaceAfterAuto = False
        .LineSpacingRule = wdLineSpaceSingle
        .LineUnitBefore = 0
        .LineUnitAfter = 0
    End With

End Sub
Schöne Grüße
Berni
MisterBurns
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 571
Registriert: 28. Mär 2018, 13:13

Re: VBA:Text von Excel nach Word kopieren

Beitragvon MrRabbitTrick » 18. Mai 2018, 10:37

Hallo Berni,

vielen Dank. Dein Code funktioniert. Ähnliche Befehle wie wdLineSpaceSingle hatte ich im Netz gefunden, wusste aber nicht, dass diese deklariert werden müssen (ist halt ein Word-Befehl). Daher häufig ein Fehler.

Leider funzt der Code nicht in meiner echten Datei. Der Zeilenabstand wird als Mehrfach angegeben. Im Text sind Platzhalter, welche durch eine UserForm gefüllt werden. Das Merkwürdige, wenn ich das Makro direkt vor dem Kopieren unterbreche und den Text in die Test-Datei einfüge und dann Dein Makro starte, funktioniert es. Um meine Datei durchzuanonymisieren, würde es sicherlich ein Tag benötigen. Daher mache ich mich nochmal selbst dran.

Besten Dank!
MrRabbitTrick
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 199
Registriert: 07. Jan 2016, 14:49

Re: VBA:Text von Excel nach Word kopieren

Beitragvon MrRabbitTrick » 18. Mai 2018, 10:45

Hallo nochmal,

sorry, mein Fehler. Hatte den Codeabschnitt
objDoc.Selection.WholeStory
nicht übernommen :oops: :roll:

Funzt!!
MrRabbitTrick
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 199
Registriert: 07. Jan 2016, 14:49

Re: VBA:Text von Excel nach Word kopieren

Beitragvon snb » 18. Mai 2018, 10:57

Oder:

Code: Alles auswählen
Private Sub CommandButton1_Click()
  with CreateObject("Word.Document")
    .content.insertafter Cells.Find("Textbaustein", lookat:=xlPart).offset(,5).value
    .windows(1).visible=true
  end with
End Sub
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6071
Registriert: 25. Sep 2014, 16:37


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: silangan und 12 Gäste