Hallo liebe Mitglieder,
ich benötige nochmal Hilfe.
Dank eurer Hilfe, habe ich mittlerweile einen funktionierenden Code, der meine Daten aus Excel zu Word überträgt. Leider gibt es noch 2 Baustellen.
1. Da die Zeilen die aus Excel übertragen werden eine Variable Anzahl sind, wäre es schön wenn die Zeilen die in Word nicht befüllt werden raus gelöscht werden. Bzw. anders herum, für jede Zeile die aus Excel an Word übergeben wird, auch nur eine Zeile in Word kreiert wird.
2. In Spalte D meiner Excel, stehen nicht immer Daten. Besteht die Möglichkeit, wenn keine Daten in einer Zelle stehen und diese leer an Word übertragen wird, einen Eintrag in Word zu machen, mit z.B. "Kein Eintrag" ?
Mein aktueller Code um die Daten zu übertragen sieht so aus.
Dim appWord As Object
Dim oWord As Object
Dim sUName As String
Dim oTable, lloRow As Long, lshXL As Worksheet, lloWdNext As Long
sUName = Environ("username")
Set oWord = CreateObject("Word.Application")
With oWord
.Documents.Add Template:="C:\Users\" & sUName & "\Desktop\Test.docx"
.Visible = True
.Activate
Set lshXL = Sheets("Tabelle.Test")
Set oTable = .ActiveDocument.Tables(1)
lloWdNext = 6
For lloRow = 2 To lshXL.Cells(lshXL.Rows.Count, 1).End(xlUp).Row
oTable.Cell(lloWdNext, 2) = lshXL.Range("E" & lloRow).Value
oTable.Cell(lloWdNext, 3) = lshXL.Range("I" & lloRow).Value
oTable.Cell(lloWdNext, 4) = lshXL.Range("A" & lloRow).Value & vbCrLf & _
lshXL.Range("C" & lloRow).Value
oTable.Cell(lloWdNext, 5) = lshXL.Range("D" & lloRow).Value
oTable.Cell(lloWdNext, 6) = lshXL.Range("B" & lloRow).Value
oTable.Cell(lloWdNext, 8) = lshXL.Range("H" & lloRow).Value
oTable.Cell(lloWdNext, 11) = lshXL.Range("L" & lloRow).Value
oTable.Cell(lloWdNext, 12) = lshXL.Range("M" & lloRow).Value
oTable.Cell(lloWdNext, 13) = lshXL.Range("K" & lloRow).Value
lloWdNext = lloWdNext + 1
Next
End With
Set oWord = Nothing
Set oTable = Nothing
Set lshXL = Nothing
End Sub
Ich hoffe ich konnte mein Anliegen halbwegs verständlich rüber bringen.
Danke schonmal für euere Hilfe.