VBA Excel Tabelle an Word Tabelle übergeben

Bild

Betrifft: VBA Excel Tabelle an Word Tabelle übergeben
von: Chak
Geschrieben am: 12.11.2015 01:12:31

Hallo,
ich habe folgendes Problem:
In Excel habe ich eine 3 Spaltige Tabelle die entweder mit Text oder mit Zahlen gefüllt ist. Das Limit der Einträge ist bei 10.
Diese Excel Tabelle möchte ich jetzt in eine Word Tabelle übergeben.
Das ist mein bisheriger Beispiel Code:

Sub In_Word_übernehmen()
Dim appWord         As Object
Dim docWord         As Object
Dim Tabellenblatt   As Worksheet
Set Tabellenblatt = ThisWorkbook.Worksheets("Tabelle1")
Set appWord = CreateObject("Word.Application")
appWord.Visible = True
appWord.WindowState = 1
AppActivate appWord.Caption
Set docWord = appWord.Documents.Add("-->PFAD<-- \Beispiel.docx")      'anpassen
With docWord
  .Bookmarks("Beispiel_1").Range.Text = Tabellenblatt.Range("A2").Value
  .Bookmarks("Beispiel_2").Range = Tabellenblatt.Range("B2").Value
  .Bookmarks("Beispiel_3").Range = Tabellenblatt.Range("C2").Value
  .Bookmarks("Beispiel_4").Range.Text = Tabellenblatt.Range("A3").Value
  .Bookmarks("Beispiel_5").Range = Tabellenblatt.Range("B3").Value
  .Bookmarks("Beispiel_6").Range = Tabellenblatt.Range("C3").Value
  
End With
End Sub
Dazu habe ich jetzt folgende Fragen:
1. Zum Pfad: Wie kann ich das Makro an mehreren PC's benutzen ohne überall den Pfad anzupassen?
2. Der Rahmen der Tabelle in Word soll mit der Anzahl der Einträgen in Excel größer werden. In der Beispiel Word Datei sind 2 Beispiele drinnen die zeigen wie die Tabelle aussehen soll wenn z.B. 5 oder 10 Einträge in Excel vorhanden sind. Wie mache ich das? Das funktioniert nicht wenn ich mir 30 einzelne Textmarken mache, kann ich hier irgendwie die Spalten ansteuern? Also quasi die Bereiche A2-A11, B2-B11 und C2-C11?
3. Ich hätte zwischen den Einträgen in Word gerne immer einen Zeilenumbruch drinnen, geht das?
4. In Spalte B und C stehen 2 Stellige Zahlen. Wenn wie im Beispiel eine 01-09 drinnen steht, wird nur 1-9 ohne die 0 an Word übergeben. Wie bekomme ich hier in Word die 0 dazu?
Habe nicht wirklich Ahnung von Makros und VBA, habe mir den Code aus einigen anderen Codes zusammen gebastelt.
Hier ist die Beispiel Word & Excel Tabelle
https://www.herber.de/bbs/user/101427.zip
Danke.
Gruß
Chak

Bild

Betrifft: AW: Näherungslösung
von: Michael (migre)
Geschrieben am: 12.11.2015 12:28:54
Hallo Chak!
Was Du erreichen möchtest erfordert viel Knowhow hinsichtlich Word-VBA - und das ist im Vergleich zu XL ein "ganz anderes Ballspiel", wie unsere amerikanischen Kollegen sagen würden.
Mitunter dauert deshalb auch eine Antwort etwas. Allerdings hast Du auch sehr viele unterschiedliche Fragestellungen in einen Beitrag gesteckt - auch das macht antworten nicht leichter.
Nichtsdestotrotz hier eine Näherungslösung meinerseits, mit der Du vielleicht schon auskommst. Hier einmal meine Antworten zu Deinen Fragen:
1. Da die Datei offenbar immer am Desktop des jeweiligen Nutzers liegt, musst Du in XL den Benutzernamen aus dem System auslesen und in die restlichen Pfadteile einpflegen:

'Benutzer = Environ("username")
'"C:\Users\" & benutzer & "\Desktop\Beispiel\Beispiel.docx"
2. Dafür hab ich, gem. Deines Beispiels, eine Näherungslösung, s. u.
3. Geht vermutlich, das hab ich Dir aber nicht ausprogrammiert - dafür ist mein Word VBA viel zu schwach, und das ist eine ziemliche Spielerei. Workaround siehe unten.
4. Hier würde ich bereits in Excel das Zahlenformat Deiner Tabelle (Spalte B und C) entsprechend anpassen, dass führende 0en angezeigt werden - beim Kopieren nach Word bleibt Dir dann die "sichtbare" Zahl über.
Hier also meine Näherungslösung:
- Ich würde die entsprechende Word-Datei als Dokumentenvorlage einrichten (.dotx). In dieser Vorlage alles einrichten wie benötigt (Seitenränder, Kopf- und Fußzeile etc.) inkl. einer (genau einer!) Word-Tabelle mit 3 Spalten und 2 Zeilen - auch die Tabelle gleich so formatieren wie gewünscht.
- Über XL kopierst Du dann jeweils bereichsweise Zellinhalte direkt in die Word-Tabelle
Anmerkungen:
Tabelle in Word soll mit der Anzahl der Einträgen in Excel größer werden
So, wie Du es in Deinem Beispiel vorgegeben hast, möchtest Du die XL-Zellinhalte nicht in eigenen Tabellen-Zeilen in Word, sondern als umgebrochenen Text in nur einer Zeile. Insofern ändert sich die Größe dieser Zeile automatisch, wenn mehr oder weniger Textinhalte (Zeilen) aus Excel eingefügt werden.
kann ich hier irgendwie die Spalten ansteuern
Diese Frage bezieht sich, nehme ich an, auf Word. Ja, ist in Word VBA möglich. Auch hier lassen sich Tabellen-Zellen, -Spalten und Zeilen ansteuern. Etwa
ActiveDocument.Tables(1).Cell(2, 3).Select ODER
ActiveDocument.Tables(1).Rows(1).Select
Hier noch mein Code-Vorschlag:
Sub TabelleXzuTabelleW()
'Verweis auf MS Word 14 Object Library erforderlich
    
    Dim TabKopf As Range
    Dim Spalte1 As Range
    Dim Spalte2 As Range
    Dim Spalte3 As Range
    Dim oWord As Object
    Dim Benutzer As String
    
    Benutzer = Environ("username")
    
    With Worksheets("Tabelle1")
        Set TabKopf = .Range("A1:C1")
        Set Spalte1 = .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
        Set Spalte2 = .Range("B2:B" & .Cells(Rows.Count, 2).End(xlUp).Row)
        Set Spalte3 = .Range("C2:C" & .Cells(Rows.Count, 3).End(xlUp).Row)
    End With
    
    Set oWord = CreateObject("Word.Application")
    
    With oWord
        .Documents.Add Template:="C:\Users\" & Benutzer & "\Desktop\Beispiel\Beispiel.docx"
        .Visible = True
        .Activate
    End With
    
    TabKopf.Copy
    
    oWord.ActiveDocument.Tables(1).Rows(1).Select
    oWord.Selection.PasteAndFormat (wdFormatPlainText)
    
    Spalte1.Copy
    oWord.ActiveDocument.Tables(1).Cell(2, 1).Select
    oWord.Selection.PasteAndFormat (wdFormatPlainText)
    
    Spalte2.Copy
    oWord.ActiveDocument.Tables(1).Cell(2, 2).Select
    oWord.Selection.PasteAndFormat (wdFormatPlainText)
    
    Spalte3.Copy
    oWord.ActiveDocument.Tables(1).Cell(2, 3).Select
    oWord.Selection.PasteAndFormat (wdFormatPlainText)
    Application.CutCopyMode = False
End Sub
Zusammengefasst macht der Code Folgendes:
- Definiert vier Bereiche der Exceltabelle: Überschrift und Spalten 1 - 3
- Öffnet eine bestimmte Word-Vorlage (Dokumentenvorlage, .dotx)
- In die vorhandene Word-Tabelle werden die vier Excelbereich nacheinander als Text eingetragen
Ein Verweis auf die Microsoft Word 14.0 Object Library muss gesetzt werden. Dazu im VB-Editor (in Excel) Extras -- Verweise -- Durchklicken bis zum entsprechenden Eintrag und Häkchen setzen.
Den Pfad des Word-Dokuments musst Du ggf. auch noch anpassen; zumindest dann die Dateiendung auf .dotx ändern.
Gib mal Bescheid, ob Du damit schon auskommst! Wie gesagt, Word VBA ist ein sehr weites Feld!
LG
Michael

Bild

Betrifft: AW: Näherungslösung
von: Chak
Geschrieben am: 13.11.2015 14:22:07
Hallo Michael,
vielen Dank für deine Bemühung.
1. Das mit dem Pfad klappt soweit Prima. Danke!
2. Die Übernahme in Excel klappt nicht so gut. Meine Tabelle in Word ist größer als die in dem Beispiel das ich eingefügt habe und hat keine Überschriften. In Word habe ich 12 Zeilen und je nach Zeile zwischen 2-6 Spalten.
Wenn ich mir deinen Code jetzt anpasse, dann zerschießt er mir meine Tabelle komplett und fügt die Daten aus Excel auf der 2. Seite ein. Wenn ich anstatt oWord.Selection.PasteAndFormat (wdFormatPlainText nur oWord.Selection.Paste schreibe, dann zerschießt er mir die Tabelle nicht mehr, aber fügt nur den ersten Eintrag ein.
3. Mit dem Zeilenumbruch ist es nicht ganz so wichtig.
4. In Excel sind die Zellen entsprechend formatiert das ich dort 01, 02, 03 usw angezeigt bekomme. Aber in Word wird die 0 trotzdem verschluckt.
Kann bei mir keine Microsoft Word 14.0 Object Library auswählen, die gibt es nicht. Habe Zuhause Word 2013 und bin erst am Montag wieder auf der Arbeit wo ich 2010 benutze.
Gruß
Chak

Bild

Betrifft: AW: Näherungslösung
von: Chak
Geschrieben am: 13.11.2015 15:42:37
Also es klappt soweit doch mit dem Code.

Sub TabelleXzuTabelleW()
'Verweis auf MS Word 14 Object Library erforderlich
    
    Dim Spalte1 As Range
    Dim Spalte2 As Range
    Dim Spalte3 As Range
    Dim oWord As Object
    Dim Benutzer As String
    
    Benutzer = Environ("username")
    
    With Worksheets("Tabelle1")
        Set Spalte1 = .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
        Set Spalte2 = .Range("B2:B" & .Cells(Rows.Count, 2).End(xlUp).Row)
        Set Spalte3 = .Range("C2:C" & .Cells(Rows.Count, 3).End(xlUp).Row)
    End With
    
    Set oWord = CreateObject("Word.Application")
    
    With oWord
        .Documents.Add Template:="C:\Users\" & Benutzer & "\Desktop\Beispiel1\Beispiel.docx"
        .Visible = True
        .Activate
    End With
    
    Spalte1.Copy
    oWord.ActiveDocument.Tables(1).Cell(2, 1).Select
    oWord.Selection.PasteAndFormat (wdFormatPlainText)
    
    Spalte2.Copy
    oWord.ActiveDocument.Tables(1).Cell(2, 2).Select
    oWord.Selection.PasteAndFormat (wdFormatPlainText)
  
    Spalte3.Copy
    oWord.ActiveDocument.Tables(1).Cell(2, 3).Select
    oWord.Selection.PasteAndFormat (wdFormatPlainText)
    
    Application.CutCopyMode = False
End Sub

Allerdings bekomme ich in Excel diese Fehlermeldung:
Laufzeitfehler '6015':
Eine Tabelle in diesem Dokument wurde beschädigt.
Beim Debuggen markiert er die Zelle bei Spalte3
oWord.Selection.PasteAndFormat (wdFormatPlainText)
Das Problem das ich jetzt habe ist das die eingefügten Spalten in Word als ein Bereich angesehen werden.
Die Spalten in Word sind nicht genauso groß wie die in Excel.
Wenn ich jetzt den Inhalt in Spalte A bearbeiten möchte und Text hinzufüge, also z.B. aus "Beispiel 1" "Beispiel 1 TextTextTextMusterMuster" mache, dann geht er in Word nicht bis ans Ende, sondern macht einen Zeilenumbruch dann wenn der Text größer als die Spalte in Excel wird.
Dazu kommt das wenn ich zwischen den Einträgen ein Leerzeichen mache z.B. zwischen Beispiel 3 und Beispiel 4, dann springt der Text von Beispiel 3 etwas höher, sodass nicht mehr überall der gleiche Abstand vorhanden ist.
Der kopierte Inhalt soll in Word quasi so ein als wenn ich ihn manuell Eingegeben habe.
Habe versucht die Spalten an die Stelle einer Bookmark zu kopieren. Da habe ich es dann eigentlich so wie ich es möchte, das es nicht als ein Bereich gesehen wird. Aber irgendwie fügt er mir den Inhalt dann an eine Falsche stelle ein. Die Bookmark ist in der Tabelle (Cell 2, 1) aber eingefügt wird der Inhalt zwischen der Tabelle. Also zwischen Cell 1, 1 und Cell 2,1.
Ich hoffe ich hab das Problem verständlich erklärt. :-D
Gruß
Chak

Bild

Betrifft: AW: Näherungslösung
von: Chak
Geschrieben am: 13.11.2015 18:58:57
Super viel Zeit für nichts investiert.
Hab zwar wegen Office 2013 die MS Word 14 Object Library nicht, aber dafür die MS Word 15 Object Library. Die habe ich wohl übersehen.
War wohl zu spät in der Nacht als ich es getestet habe. :-D
Jetzt wird mir alles so angezeigt wie ich es möchte, inklusive der 0 bei den Zahlen.
Somit bleibt nur noch das Problem mit den Zeilenumbrüchen zwischen den Einträgen. Mal schauen ob ich bei Google was dazu finde.
Ansonsten übertrage ich den Bereich einfach auf ein neues Tabellenblatt, füge dort überall eine weitere Zeile zwischen den Einträgen ein und blende dieses Tabellenblatt dann für den Anwender aus.
Vielen Dank für die schnelle Hilfe Michael!
Gruß
Chak

Bild

Betrifft: AW: Danke für die Rückmeldung, freut mich...
von: Michael (migre)
Geschrieben am: 13.11.2015 22:28:03
Chak,
...dass ich Dir (schlussendlich) helfen konnte. Ich habe erst jetzt wieder in den Faden geschaut und daher Deine "Zwischenversuche" nicht mehr kommentiert; das mit der Objekt Bibliothek hast Du ja sowieso selbst rausgefunden und mittlerweile auch meine Lösung gut umsetzen können.
Viel Erfolg noch!
LG
Michael

Bild

Betrifft: Schleife auf leere Zellen prüfen
von: Chak
Geschrieben am: 16.11.2015 09:32:00
Hallo Michael,
In der Beispiel Datei hat alles bestens geklappt. In meiner richtigen Daten habe ich jetzt folgendes Problem:
In der Spalte in der ich einen bestimmten Bereich nach Word kopieren will, stehen noch andere Sachen drinnen die nicht mit nach Word sollen.
Deshalb kann ich diese Range nicht benutzen.
Set Spalte1 = .Range("A12:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
Eine feste Range wie A12:A21 würde glaube ich funktionieren, nur habe ich dabei das Problem das die Zellen in Excel nicht als leer angesehen werden sobald sie eine Formel enthalten oder formatiert sind.
Meine Zellen in Excel sind Grau hinterlegt oder haben eine Formel enhalten.
Jetzt habe ich versucht mit einer Schleife abzufragen ob die Zellen Leer sind oder nicht
Dim Zelle As Range
For Each Zelle In Worksheets("Jubiberechnung").Range("A12:A21")

If Zelle <> "" Then
Zelle.Copy
appWord.ActiveDocument.Tables(1).Cell(5, 1).Select
appWord.Selection.PasteAndFormat (wdFormatPlainText)

End If
Next
Das Kopieren an sich funktioniert, nur leider überschreibt er den Inhalt der Tabelle 5, 1 in Word für jede Zelle erneut, sodass am Ende nur der letzte Wert des Bereiches in der Tabelle steht.
Weißt du wie ich das lösen könnte?
Danke.
Gruß
Chak

Bild

Betrifft: AW: Schleife auf leere Zellen prüfen
von: Michael (migre)
Geschrieben am: 16.11.2015 10:01:24
Hallo Chak!
In der Beispiel Datei hat alles bestens geklappt. In meiner richtigen Daten habe ich jetzt folgendes Problem
...dann war das Beispiel wohl nicht Beispiel genug ;-).
Magst Du mir nochmal Deine Excel-Quell-Datei sowie die Word-Ziel-Datei beispielhaft hochladen, mit den Verhältnissen wie sie wirklich sind? Dann schau ich nochmal drüber. Ich möchte keine echten Daten, aber die Datenstruktur etc. soll so aussehen, wie es bei Dir "wirklich" ist.
LG
Michael

Bild

Betrifft: AW: Schleife auf leere Zellen prüfen
von: Chak
Geschrieben am: 16.11.2015 11:44:40
Ja, da hast du wohl leider recht.
Hier das richtige Beispiel:
https://www.herber.de/bbs/user/101551.zip
Ich möchte im Prinzip von dem Tabellenblatt "Nebenrechnung" die jeweiligen Spalten 3-12 in das Word Dokument übernehmen.
Dort steht normalerweise in jeder Zelle eine Formel. Die Berechnungsformeln in den Spalten D/E/F/G und L/M/N/O habe ich mal rausgenommen. In A/B/C und I/J/K sind noch Formeln drinnen.
Im Tabellenblatt "Main" werden die Daten eingegeben. Dort habe ich auch in A12-A21 und F12-F21 Dropdown-Menüs.
Das Problem bei der übernahme in Word ist jetzt, das alle Zellen die eine Formel enthalten oder irgendwie formatiert sind (z.B. Grau ausgefüllt) nicht als Leer angesehen werden und als Leere Zeile in Word übernommen wird.
Word erstellen Main: Ist quasi dein Code, nur das ich anstatt Set Spalte1 = .Range("A12:A" & .Cells(Rows.Count, 1).End(xlUp).Row) nur Set Spalte1 = .Range("A12:A21") genommen habe, weil ich A12:A nicht nehmen kann, weil untendrunter noch Einträge sind die nicht nach Word kopiert werden sollen.
Word erstellen Test: Ist das gleiche wie "Word erstellen Main" nur das es sich auf das Tabellenblatt "Test" bezieht. Hier funktioniert alles richtig, weil dort die Zellen nicht Formatiert sind oder Formeln enthalten.
Word erstellen Schleife: Ist mein Versuch mit einer Schleife auf leere Zellen abzufragen. Ich glaube leere Zellen werden erkannt, aber beim kopieren nach Word überschreibt er jeden Datensatz wieder sodass nur der letzte Datensatz in der Tabelle in Word ist.
Wenn irgendwas unklar ist, einfach Bescheid geben.
Gruß
Chak

Bild

Betrifft: AW: Schleife auf leere Zellen prüfen
von: Michael (migre)
Geschrieben am: 16.11.2015 12:48:05
Hallo Chak!
Was Du hier zeigst ist leider recht konfus. Das hilft mir so überhaupt nicht, Dir zu helfen.
von dem Tabellenblatt "Nebenrechnung" die jeweiligen Spalten 3-12 in das Word Dokument übernehmen
Welche Spalten? Oder meinst Du Zeilen 3 bis 12?
Auch sehe ich in dem Word-Dokument, das Du hochgeladen hast, nicht wohin welche Information soll. Anstatt nur [Text, Text, Text, Text, Text, Text] zu schreiben, wäre für mich hilfreicher wenn das was in der Excel-Tabelle steht (zB Beispiel01, Beispiel04...) in Word jeweils an der gewünschten Stelle steht - damit ich ablesen kann, was Deine Zielvorstellung ist.
Auch bisher (nicht funktionierende) Code-Teile helfen wenig, wenn ich noch nicht mal richtig verstanden habe WAS umgesetzt werden soll - das WIE ist dann der 2. Teil.
Also: Vom Blatt Nebenberechnung sollen Daten nach Word übertragen werden. WOHIN dort? Was soll nicht mitübertragen werden?
LG
Michael

Bild

Betrifft: AW: Schleife auf leere Zellen prüfen
von: Chak
Geschrieben am: 16.11.2015 13:53:48
Das ganze "Text Text Text" ist unwichtig. Das ist nur damit die Tabelle in Word nicht komplett leer ist. Das habe ich jetzt gelöscht.
Habe in dem Worddokument eingefügt was an welche Stelle soll.
https://www.herber.de/bbs/user/101559.zip
Im Tabellenblatt Main werden die Daten eingegeben.
Diese Daten hole ich mir dann in das Tabellenblatt Nebenrechnung und mache dort bestimmte berechnungen.
Es sollen 12 Bereiche nach Word kopiert werden: A3:A12 | B3:B12 | C3:C12 | E3:E12 | F3:F12 | G3:G12 | I3:I12 | J3:J12 | K3:K12 | M3:M12 | N3:N12 | O3:O12
Allerdings nur soweit wie der Bereich ausgefüllt ist.
Wenn in der Spalte A nur 2 Einträge sind, soll nur A3 und A4 nach Word kopiert werden.
Das Problem momentan ist, das Zellen mit Formel oder Formatierung nicht als Leer angesehen werden und somit als Leere Zeile in Word auftauchen.
Bzw. bei der Schleife überschreibt er immer die Daten und am Ende ist nur der letzte Datensatz in Word.
Ich hoffe jetzt konnte ich es etwas verständlicher erklären als bei dem Versuch davor.
Gruß
Chak

Bild

Betrifft: AW: Schleife schon möglich...
von: Michael (migre)
Geschrieben am: 16.11.2015 15:10:12
Hallo Chak!
Okay, jetzt hab ich verstanden, was wohin soll, und wo das Problem mit den "Leerzeilen" liegt.
Du kannst Dir hier schon mit einer Schleife helfen: Anstatt die jeweiligen Bereich in Excel zu kopieren, wie in meiner ersten Lösung vorgeschlagen, kannst Du die Elemente jedes Bereichs abklappern und so nur sichtbare Textinhalte übernehmen. Du sammelst Dir also bereichsweise die Textinhalte in einer Variablen, jeweils durch Zeilenschritte getrennt, und musst dann in Word keine kopierten Daten einfügen, sondern übergibst einfach die Inhalte der Variablen an der richtigen Tabellenstelle.
Sinngemäß machst Du das so; einbauen in Dein Gesamtmakro musst Du Dir das selbst - ist bei 12 Bereich ein bisschen Schreibarbeit, aber ich bin sicher Du kriegst das hin:

Dim Bereich As Range
    Dim Zelle As Range
    Dim TextSpeicher As String
    
    'Ersten Bereich definieren
    Set Bereich = Worksheets("Nebenrechnung").Range("A3:A12")
    
    'Inhalte jeder Zelle mit Text-Inhalt speichern, Trenner = Zeilenumbruch
    For Each Zelle In Bereich
        If Zelle.Text <> "" Then
            TextSpeicher = TextSpeicher & Zelle.Text & Chr(10)
        End If
    Next
    
    'Einfügebereich in Word wählen
    appWord.ActiveDocument.Tables(1).Cell(5, 1).Select
    
    'Speicher-Inhalt in Word einfügen
    appWord.Selection.Text = TextSpeicher
    
    'Vor nächstem Bereich Speicher leeren
    TextSpeicher = ""
    
    ''---- weiter wie oben, mit neuem Bereich ----
    
    ''Zweiten Bereich definieren
    'Set Bereich = Worksheets("Nebenrechnung").Range("B3:B12")
    'usw. usf.
Kommentare sind auch im Code vorhanden. Gib noch Bescheid, ob Du hinkommst!
LG
Michael

Bild

Betrifft: AW: Schleife schon möglich
von: Michael (migre)
Geschrieben am: 16.11.2015 15:10:35
Hallo Chak!
Okay, jetzt hab ich verstanden, was wohin soll, und wo das Problem mit den "Leerzeilen" liegt.
Du kannst Dir hier schon mit einer Schleife helfen: Anstatt die jeweiligen Bereich in Excel zu kopieren, wie in meiner ersten Lösung vorgeschlagen, kannst Du die Elemente jedes Bereichs abklappern und so nur sichtbare Textinhalte übernehmen. Du sammelst Dir also bereichsweise die Textinhalte in einer Variablen, jeweils durch Zeilenschritte getrennt, und musst dann in Word keine kopierten Daten einfügen, sondern übergibst einfach die Inhalte der Variablen an der richtigen Tabellenstelle.
Sinngemäß machst Du das so; einbauen in Dein Gesamtmakro musst Du Dir das selbst - ist bei 12 Bereich ein bisschen Schreibarbeit, aber ich bin sicher Du kriegst das hin:

Dim Bereich As Range
    Dim Zelle As Range
    Dim TextSpeicher As String
    
    'Ersten Bereich definieren
    Set Bereich = Worksheets("Nebenrechnung").Range("A3:A12")
    
    'Inhalte jeder Zelle mit Text-Inhalt speichern, Trenner = Zeilenumbruch
    For Each Zelle In Bereich
        If Zelle.Text <> "" Then
            TextSpeicher = TextSpeicher & Zelle.Text & Chr(10)
        End If
    Next
    
    'Einfügebereich in Word wählen
    appWord.ActiveDocument.Tables(1).Cell(5, 1).Select
    
    'Speicher-Inhalt in Word einfügen
    appWord.Selection.Text = TextSpeicher
    
    'Vor nächstem Bereich Speicher leeren
    TextSpeicher = ""
    
    ''---- weiter wie oben, mit neuem Bereich ----
    
    ''Zweiten Bereich definieren
    'Set Bereich = Worksheets("Nebenrechnung").Range("B3:B12")
    'usw. usf.
Kommentare sind auch im Code vorhanden. Gib noch Bescheid, ob Du hinkommst!
LG
Michael

Bild

Betrifft: AW: Schleife schon möglich
von: Chak
Geschrieben am: 17.11.2015 11:18:28
Perfekt! Funktioniert jetzt genauso wie ich es wollte.
Vielen lieben Dank für deine Hilfe Michael!
Alleine hätte ich das niemals geschafft.
Gruß
Chak

Bild

Betrifft: AW: Danke für die nette Rückmeldung! Gerne! owT
von: Michael (migre)
Geschrieben am: 17.11.2015 11:37:54


 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA Excel Tabelle an Word Tabelle übergeben"