Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
908to912
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel Export nach Word - Zellbereich

Excel Export nach Word - Zellbereich
21.09.2007 06:36:00
Michael
Guten Morgen zusammen,
ich habe ein kleines Problem mit einem Export von Zellinhalten nach Word.
Mit folgendem Makro kann ich einzelnen Zelleninhalte auf Textmarken im Word übertragen.
Wie muss ich den Code ändern um auch benannte Zellbereiche exportieren zu können Z.B. A1:C7?
docTest.Bookmarks("ExcelWert1").Range.Text = Range("A1:A7") funktioniert nicht!

Sub NachWord()
Dim appWord As Object
Dim docTest As Object
Set appWord = CreateObject("Word.Application")
Set docTest = appWord.Documents.Add("C:\Test\Test.dot")
appWord.Visible = True
docTest.Activate
docTest.Bookmarks("ExcelWert1").Range.Text = Range("A1")
Set docTest = Nothing
Set appWord = Nothing
End Sub


Wie kann ich einen Zellinhalt (z.B. Datum) im Speichernamen integrieren?
Danke für eure Hilfe!
vg Michael

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Export nach Word - Zellbereich
21.09.2007 07:24:37
Oberschlumpf
Hi Michael
1. Ich weiß nicht, ob das funzt, aber probier mal dies:
- gib dem Zellbereich A1:A7 einen Bereichsnamen
- und dann docTest.Bookmarks("ExcelWert1").Range.Text = Range("Bereichsname").Value
2. In A1 steht das Datum
ThisWorkbook.SaveAs "DeinName" & Replace(Range("A1").Value, ".", "")
Replace deswegen, weil sonst die Datumtrennzeichen mit im Dateinamen wären.
Hilft das?
Ciao
Thorsten

AW: Excel Export nach Word - Zellbereich
21.09.2007 07:54:00
Michael
Hallo Thorsten,
Danke für deine Hilfe, aber leider funktioniert der Vorschlag nicht
Es kommt die Meldung: Typen unverträglich
BeimSpeichernamen habe ich mich nicht richtig ausgedrückt - ich wollte das Worddokument automatisch unter dem Zellnamen speichern.
Bei Excel hat es nach deinem Muster funktioniert!
vg Michael

Anzeige
AW: Excel Export nach Word - Zellbereich
21.09.2007 10:22:00
fcs
Hallo Thorsten,
um die Daten aus einem Excel-Tabellen-Bereich nach Word zu Transferieren. Gibt es zwei gute Möglichkeiten:
1. Datenbereich in Excel kopieren und dann in Word via Inhalte... Einfügen als entsprechendes Objekt einbetten oder in eine Wordtabelle umsetzen.
2. Du hast in Word an der Einfügeposition schon die 1. Zeile einer Tabelle vorbereitet.
Du kannst dann die Tabelle entsprechend den Anzahl Zeilen in Excel vergrößern und anschließend die Daten in die Tabelle eintragen.
Entspechenden VBA-Code für die beiden Varianten hab ich nur auf meinem Heimrechner; ich checke das heute Abend mal.
Leider hilft der in Word für das Einfügen per Makrorecorder aufgezeichnete Code nur begrenzt weiter, da man bei VBA von Excel aus entsprechende Word-Range-Objekte ansprechen/definieren muss um das Ganze zum Laufen zu bekommen.
Gruß
Franz

Anzeige
AW: Excel Export nach Word - Zellbereich
21.09.2007 14:39:53
Michael
Hallo Franz,
danke erst mal für deine Hilfe!
Dann warte ich einfach bis morgen, vielleicht findest du ja die passenden Codes auf deinem Rechner.
vg Michael

AW: Excel Export nach Word - Zellbereich
22.09.2007 01:46:22
fcs
Hallo Michael,
ich bin fündig geworden und hab das Ganze noch um ein paar Varianten erweitert.
Möglich sind folgende Einfügungen eines Excel-Tabellenbereichs an einer Textmarke in einem Worddokument:
  • 1 als RTF (in Word wird eine Tabelle kreiert, die viele Formata aus Excel enthält)
    2 als Text getrennt durch Tabs
    3 als Excel-Objekt ohne Verknüpfung
    4 als BitMap Grafik (es gibt noch ein paar andere Grafikvarianten!)
    5 Zellenweise Texteigenschaft in eine Leertabelle im Worddokument

  • In der ZIP-Datei findest du das Word-Muster, das Ergebnis nach dem Tranfer und die Excel-Datei mit den Beispspieldaten und dem Makro.
    Beschreibungen zu Details der Funktion findest du in der VBA-Prozedur als Kommentar.
    https://www.herber.de/bbs/user/46255.zip
    MfG
    Franz
    
    Option Explicit
    '###### fcs, aktualisiert 2007-09-21 ######
    'Zur korrkten Funktion der Prozedur muss im Excel-VBA-Editor unter Extras-->Verweise _
    der Verweis auf die "Microsoft Word x.y Object Library" als verfügbar markiert werden.
    'Prozedur wurde erstellt unter Office97 (Word97/Excel97)
    'MS Word muss geöffnet sein bevor die Prozedur gestarte wird
    Sub Daten_aus_Bereich_nach_Word()
    'Fügt Daten aus Excel an Textmarke in ein Worddokument ein
    'Deklaration Word-Objekte
    Dim wdDoc As Word.Document, TextMarke As Word.Bookmark, TabZeile As Word.Row
    'Deklaration Excel-Objekte
    Dim wks As Worksheet, Bereich As Range
    'Deklaration allgemeine Variablen
    Dim strWordDatei As String
    Dim iI As Long, lngZeile As Long, FehlerNr As Integer
    On Error GoTo Fehler
    Application.ScreenUpdating = False
    Set wks = ActiveWorkbook.Worksheets("Tabelle1") 'Tabelle mit zu exportierenden Daten
    Application.ActivateMicrosoftApp xlMicrosoftWord
    FehlerNr = 1
    'Worddokument in das eingefügt werden soll
    strWordDatei = "C:\Eigene Dateien\Dokumente\TextausgabeMuster.doc"
    'Prüfung ob Word-Dokument schon geöffnet
    For Each wdDoc In Word.Documents
    If LCase(Word.ActiveDocument.FullName) = LCase(strWordDatei) Then
    If MsgBox("Das Musterdokument ist schon geöffnet!" & vbLf & vbLf & _
    "Trotzden weitermachen?", vbQuestion + vbOKCancel, "Datentransfer nach Word") _
    = vbCancel Then
    GoTo weiter01
    Else
    Exit For
    End If
    End If
    Next
    If wdDoc Is Nothing Then
    Set wdDoc = Word.Documents.Open(FileName:=strWordDatei, ReadOnly:=True)
    Else
    wdDoc.Activate
    End If
    'Exceldaten übertragen und im Worddokument an einer Textmarke einfügen
    With wdDoc
    'Daten kopieren und in Worddokument einfügen im RTF-Format
    'es wird eine Wordtabelle erzeugt, die einen Teil der Formatierungen aus der _
    Exceldatei übernimmt
    Set Bereich = wks.Range("A3:E6") 'Bereich mit den zu exportierenden Daten
    Bereich.Copy
    Set TextMarke = .Bookmarks("Excel1_RTF")
    TextMarke.Range.PasteSpecial Link:=False, DataType:=wdPasteRTF, _
    Placement:=wdInLine, DisplayAsIcon:=False
    'Daten kopieren und in Worddokument einfügen als Text
    'Wenn die Zeile mit der Textmarke Tabulatoren enthält, dann werden die _
    die Daten aus den Excelspalten entsprechend dargestellt
    Set Bereich = wks.Range("A4:E6") 'Bereich mit den zu exportierenden Daten
    Bereich.Copy
    Set TextMarke = .Bookmarks("Excel2_TXT")
    TextMarke.Range.PasteSpecial Link:=False, DataType:=wdPasteText, _
    Placement:=wdInLine, DisplayAsIcon:=False
    'Daten kopieren und in Worddokument einfügen als Excel-Objekt ohne Verknüpfung
    Set Bereich = wks.Range("A3:E6") 'Bereich mit den zu exportierenden Daten
    Bereich.Copy
    Set TextMarke = .Bookmarks("Excel3_Objekt")
    TextMarke.Range.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, _
    Placement:=wdInLine, DisplayAsIcon:=False
    'Daten kopieren und in Worddokument einfügen als Bitmapgrafik-Grafik ohne Verknüpfung
    Set Bereich = wks.Range("A3:E6") 'Bereich mit den zu exportierenden Daten
    Bereich.Copy
    Set TextMarke = .Bookmarks("Excel4_Grafik")
    TextMarke.Range.PasteSpecial Link:=False, DataType:=wdPasteBitmap, _
    Placement:=wdInLine, DisplayAsIcon:=False
    Application.CutCopyMode = False
    'Daten in Worddokument einfügen in vorbereitete Word-Tabelle
    'Dokument enthält eine Tabelle deren letzte Zeile leer ist und das Muster _
    für die einzufügenden Daten darstellt. Diese letzte Zeile wird entsprechend _
    der Anzahl Zeilen im Bereich dupliziert. Die Textmarke muss in der Linken _
    Zelle dieser Leerzeile gesetzt werden. Word-Tabelle und Excel-Bereich müssen _
    die gleiche Spaltenzahl haben! Wenn nicht, dann müssen die For-Next-Schleifen _
    anders aufgebaut werden.
    Set Bereich = wks.Range("A4:E6") 'Bereich mit den zu exportierenden Daten
    Set TextMarke = .Bookmarks("Excel5_Tabelle")
    If TextMarke.Range.Information(wdWithInTable) = True Then
    Set TabZeile = TextMarke.Range.Rows(1)
    Else
    MsgBox "Textmarke ist im Worddokument nicht korrekt positioniert!" & vbLf & _
    "Die Textmarke muss in einer Tabelle plaziert sein in der letzten Zeile."
    End If
    For lngZeile = 1 To Bereich.Rows.Count
    For iI = 1 To TabZeile.Cells.Count
    TabZeile.Cells(iI).Range.InsertAfter Text:=Bereich.Cells(lngZeile, iI).Text
    Next iI
    If lngZeile  0 Then Word.Application.WindowState = wdWindowStateMinimize
    MsgBox "Word- oder Excel-Fehler Nr. " & Err.Number & " ist aufgetreten!" & vbLf & vbLf _
    & Err.Description
    Beenden:
    Application.ScreenUpdating = True
    Set wdDoc = Nothing: Set TextMarke = Nothing: Set TabZeile = Nothing
    Set wks = Nothing: Set Bereich = Nothing
    End Sub
    


    Anzeige
    AW: Excel Export nach Word - Zellbereich
    22.09.2007 05:47:00
    Michael
    Hallo Franz,
    ein dickes Dankeschön - der Code funktioniert ausgezeichnet und ist genau das, was ich gesucht habe. Du hast mir sehr geholfen.
    Ich habe den Speichernamen für das Dokument noch ein klein wenig abgeändert und mit einem Bezug auf eine Zelle im Datenblatt versehen:
    With Word.Dialogs(wdDialogFileSaveAs)
    .Name = wdDoc.Path & "\" & "Call-off-" & Worksheets("Tabelle4").Range("A1").Value & ".doc"
    .Show
    End With
    Danke nochmal!
    Viele Grüsse
    Michael

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige