Ik wil met gegevens uit een Excel-werkblad een Word document opbouwen. Hiervoor heb ik een stuk vba-code in elkaar gezet, dat op zich prima werkt. Ik ben alleen nog niet zo tevreden over de opmaak. Zo zou ik graag bij de tweede tabel de opmaak willen hebben met lettertype Times New Roman, 9 punten en de eerste rij vetgedrukt.
Kan iemand mij daarmee verder helpen ?
Sub Nieuw_document()
Dim wrdRange, wrdTable
Pad = ThisWorkbook.Path
'We creëren een nieuw object in Word en maken Word
' zichtbaar. We tonen Word in een maximumvenster.
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.WindowState = wdwindowstatemaximize
'We openen het bestand budgetverslag.doc
objWord.changefileopendirectory Pad
Set objDocument = objWord.Documents.Add
With objDocument.Content
.InsertAfter "Budgetverantwoording " & Range("boekjaar")
.InsertParagraphAfter
.InsertParagraphAfter
End With
'Tabel aanmaken van 3 kolommen en 4 rijen aan het einde van het bestaande document
Set wrdRange = objDocument.Content
wrdRange.Collapse Direction:=wdCollapseEnd
Set wrdTable = objDocument.Tables.Add(wrdRange, 4, 3)
wrdTable.Columns(1).Width = 22
wrdTable.Columns(2).Width = 200
wrdTable.Columns(3).Width = 250
wrdTable.Cell(1, 1) = "1"
wrdTable.Cell(2, 1) = "2a"
wrdTable.Cell(3, 1) = "2b"
wrdTable.Cell(4, 1) = "2c"
wrdTable.Cell(1, 2) = "Afdeling"
wrdTable.Cell(2, 2) = "Programma"
wrdTable.Cell(3, 2) = "Functie"
wrdTable.Cell(4, 2) = "Clustering budgetten (sub-functie)"
wrdTable.Cell(1, 3) = Afdeling
wrdTable.Cell(2, 3) = Programma
wrdTable.Cell(3, 3) = Functie
wrdTable.Cell(4, 3) = Sub_functie
With objDocument.Content
.InsertParagraphAfter
.InsertAfter "Cijfermateriaal"
.InsertParagraphAfter
End With
‘De tweede tabel aanmaken
Set wrdRange = objDocument.Content
wrdRange.Collapse Direction:=wdCollapseEnd
Set wrdTable = objDocument.Tables.Add(wrdRange, 1, 6)
wrdTable.Cell(1, 1) = "Budget"
wrdTable.Cell(1, 2) = "Verantwoordelijke"
wrdTable.Cell(1, 3) = "Kostensoort"
wrdTable.Cell(1, 4) = "Budget bedrag"
wrdTable.Cell(1, 5) = "Realisatie bedrag"
wrdTable.Cell(1, 6) = "Verschil"
'wrdTable.Columns(1).Width = 146
'wrdTable.Columns(2).Width = 76
'wrdTable.Columns(3).Width = 67
'wrdTable.Columns(4).Width = 63
'wrdTable.Columns(5).Width = 72
'wrdTable.Columns(6).Width = 54
Set wrdTable = Nothing
Set wrdRange = Nothing
End Sub
Kan iemand mij daarmee verder helpen ?
Sub Nieuw_document()
Dim wrdRange, wrdTable
Pad = ThisWorkbook.Path
'We creëren een nieuw object in Word en maken Word
' zichtbaar. We tonen Word in een maximumvenster.
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.WindowState = wdwindowstatemaximize
'We openen het bestand budgetverslag.doc
objWord.changefileopendirectory Pad
Set objDocument = objWord.Documents.Add
With objDocument.Content
.InsertAfter "Budgetverantwoording " & Range("boekjaar")
.InsertParagraphAfter
.InsertParagraphAfter
End With
'Tabel aanmaken van 3 kolommen en 4 rijen aan het einde van het bestaande document
Set wrdRange = objDocument.Content
wrdRange.Collapse Direction:=wdCollapseEnd
Set wrdTable = objDocument.Tables.Add(wrdRange, 4, 3)
wrdTable.Columns(1).Width = 22
wrdTable.Columns(2).Width = 200
wrdTable.Columns(3).Width = 250
wrdTable.Cell(1, 1) = "1"
wrdTable.Cell(2, 1) = "2a"
wrdTable.Cell(3, 1) = "2b"
wrdTable.Cell(4, 1) = "2c"
wrdTable.Cell(1, 2) = "Afdeling"
wrdTable.Cell(2, 2) = "Programma"
wrdTable.Cell(3, 2) = "Functie"
wrdTable.Cell(4, 2) = "Clustering budgetten (sub-functie)"
wrdTable.Cell(1, 3) = Afdeling
wrdTable.Cell(2, 3) = Programma
wrdTable.Cell(3, 3) = Functie
wrdTable.Cell(4, 3) = Sub_functie
With objDocument.Content
.InsertParagraphAfter
.InsertAfter "Cijfermateriaal"
.InsertParagraphAfter
End With
‘De tweede tabel aanmaken
Set wrdRange = objDocument.Content
wrdRange.Collapse Direction:=wdCollapseEnd
Set wrdTable = objDocument.Tables.Add(wrdRange, 1, 6)
wrdTable.Cell(1, 1) = "Budget"
wrdTable.Cell(1, 2) = "Verantwoordelijke"
wrdTable.Cell(1, 3) = "Kostensoort"
wrdTable.Cell(1, 4) = "Budget bedrag"
wrdTable.Cell(1, 5) = "Realisatie bedrag"
wrdTable.Cell(1, 6) = "Verschil"
'wrdTable.Columns(1).Width = 146
'wrdTable.Columns(2).Width = 76
'wrdTable.Columns(3).Width = 67
'wrdTable.Columns(4).Width = 63
'wrdTable.Columns(5).Width = 72
'wrdTable.Columns(6).Width = 54
Set wrdTable = Nothing
Set wrdRange = Nothing
End Sub