ich sitze nun schon seit Donnerstag an folgender Aufgabenstellung:
In einer Excel-Datei lasse ich mir in einer Tabelle verschiedene Daten darstellen, ich möchte diese Tabelle in Word darstellen, die Zeilenanzahl ist hier variabel, die Spaltenanzahl nicht. Die Word-Datei liegt mir als Vorlage vor, die Tabelle soll an einer bestimmten Stelle dargestellt werden, ich hatte überlegt hier mit einem Textmarker zu arbeiten. Den Verweis zur Microsoft Excel ... Object Library & den Verweis zu Microsoft VBA for Applications Extensibility habe ich gesetzt
Ich habe mir nun schon einige Threads & Videos zu dem Thema angeschaut, auf einen grünen Zweig komme ich jedoch nicht, vll. könnt ihr mir hier weiterhelfen? Der Code, den ich nutze, habe ich mir aus einem anderen Forum gezogen & versucht auf mein Beispiel abzuändern. Funktioniert jedoch eher schlecht als recht, ich bekomme aktuell in der Zeile 49, Spalte 81 den Fehler ausgewiesen "Fehler beim Kompilieren: Variable nicht definiert"
Ich vermute jedoch, dass der ganze Code nicht richtig funktioniert, über jegliche Hilfe würde ich mich sehr freuen.
LG
Option Explicit
Sub Excel_Zu_Word()
Dim xlsAppl As Excel.Application
Dim xlsWbk As Excel.Workbook
Dim xlsWks As Excel.Worksheet
Dim xlsRngTabellenbereich As Excel.Range
Dim vntFile As Variant
Dim wrdDoc As Object 'Eigentlich als Word.Document, funktioniert allerdings nicht, hier bekomme _
ich die Fehlermeldung "Benutzerdefinierter Typ nicht definiert".
Dim lngAbZeileQuelle As Long
Dim lngAbSpalteQuelle As Long
Dim lngLetzteZeileQuelle As Long
Dim strFirstAddress As String
Dim lngZeileMarker As Long
Dim lngBisSpalteQuelle As Long
Dim rngBM As Range 'Eigentlich als Word.Range, gleiche Fehlermeldung wie bei "Word.Document"
lngBisSpalteQuelle = 9
lngAbSpalteQuelle = 2
lngAbZeileQuelle = 5
Set wrdDoc = CreateObject("Word.Application")
wrdDoc.Visible = True
wrdDoc.documents.Open = ("C:\Users\_._\Desktop\VBA Word Datei\Protokoll.docx")
Set rngBM = wrdDoc.Bookmarks("Meine_Tabelle").Range
Set xlsAppl = CreateObject("Excel.Application")
xlsAppl.Visible = True
vntFile = "C:\Users\_._\Desktop\VBA Word Datei\Vorlage.xlsm"
If Not vntFile = False Then
Set xlsWbk = xlsAppl.Workbooks.Open(vntFile)
Set xlsWks = xlsWbk.Worksheets("Tabelle1")
xlsAppl.Visible = True 'später: False
lngLetzteZeileQuelle = xlsWks.Cells(xlsWks.Rows.Count, lngAbSpalteQuelle).End(-4162).Row ' - _
4162 = xlUp
Set xlsRngTabellenbereich = xlsWks.Range(xlsWks.Cells(lngAbZeileQuelle, lngAbSpalteQuelle), _
xlsWks.Cells(lngLetzteZeileQuelle, lngBisSpalteQuelle))
xlsWks.Range(xlsWks.Cells(lngAbZeileQuelle, lngAbSpalteQuelle), xlsWks.Cells( _
lngLetzteZeileQuelle, lngBisSpalteQuelle)).Copy
wrdDoc.Range(rngBM.Start, rngBM.End).PasteSpecial Link:=False, DataType:=wdPasteRTF, Placement: _
_
=wdInLine, DisplayAsIcon:=False
xlsAppl.CutCopyMode = False
xlsWbk.Close False
End If
xlsAppl.Quit
Set xlsWks = Nothing
Set xlsWbk = Nothing
Set xlsAppl = Nothing
End Sub