Tabelle formatiert an Word übergeben
11.01.2022 13:19:57
Jenny
ich brauche eure Hilfe. Ich bin leider noch nicht ganz so drin in der VBA Programmierung. Daher wäre ich euch für eure Hilfe sehr dankbar.
Ich möchte gerne von mehrere Tabellen (Anzahl variabel, mit variablen Zeilen) die Spalten A,C und D in ein neues Word Dokument kopieren (nur von der Zusammenfassung ganz am Ende Spalte A und C). Das funktioniert auch soweit. Nur, dass ich alle einzelnen Tabellen als eine Tabelle im Word erhalte... Nun möchte ich aber, dass die Tabellen einzeln übertragen werden, die (Zwischen-)Überschriften und jeweils die letzte Zeile in einem bestimmten Format in Word eingefügt werden. Wie die Tabellen dann in Word aussehen sollen seht ihr in der Datei auf der rechten Seite an einem Bespiel.
https://www.herber.de/bbs/user/150326.xlsx
In Word:
Hauptüberschrift und letzte Zeile = Hintergrundfarbe Dunkelblau (0,56,106) - Schrift Fett und weiß
Zwischenüberschrift = Hintergrundfarbe Dunkelgrau (166,166,166) - Schrift Fett und Schwarz - & alle Zelle in dieser Zeile verbinden.
"Ende"-Zwischenüberschrift = Hintergrundfarbe Hellgrau (217,217,217) - Schrift Fett und Schwarz
Alle anderen Zellen = Hintergrundfarbe Türkis (195,222,209) - Schrift Schwarz
Erste Spalte Breite = 10,49
Zweite Spalte Breite = 2
Dritte Spalte Breite = 3,15
Für die Zusammenfassung
Erste Spalte Breite = 4,48
Zweite Spalte Breite = 11,47
Alle Tabellenlinien in weiß.
Ich dachte man könnte es so machen: übertrage die Tabellen in ein neues Word und durchsuche die Tabellen nach Text = XY und formatiere diese Zeile so".
Die unten stehende Makro wird durch einen button auf dem Tabellenblatt gestartet.
Könnt ihr mir hier helfen?
Sub AngebotErstellen()
Dim xlWks As Worksheet
Dim xlZeile As Long, xlZeile_L As Long
Dim wdApp As Object 'Word.Application
Dim wdDoc As Object 'Word.Document
Dim wdTab As Object 'Word.Table
Dim wdZeile As Long
Dim strDot As String
Set xlWks = ActiveSheet
strDot = ' in ein neues Word Dok übertragen muss nicht .dot sein
Set wdApp = VBA.CreateObject("Word.Application")
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Add(Template:=strDot)
Set wdTab = wdDoc.Tables(4) 'in dem neuen Dok noch keine Tabelle dann vorhanden ... Tables(1)?
With xlWks
xlZeile_L = .Cells(.Rows.Count, 2).End(xlUp).Row
With wdTab
For xlZeile = 2 To xlZeile_L
If xlZeile > 2 Then
.Rows.Add
End If
wdZeile = .Rows.Count
.Cell(wdZeile, 1).Range.Text = xlWks.Cells(xlZeile, 1).Text
.Cell(wdZeile, 2).Range.Text = xlWks.Cells(xlZeile, 3).Text
.Cell(wdZeile, 3).Range.Text = xlWks.Cells(xlZeile, 4).Text
Next
End With
End With
ActiveWorkbook.Activate
MsgBox "Fertig!", vbInformation, "Übertragung in Word-Vorlage"
End Sub
Anzeige