Hallo allemaal,
Ik ben al een tijdje aan het stoeien, maar kom er echt niet uit. Ik heb een tabel en kan er niet omheen dat er samengevoegde cellen in voorkomen. Echter, zoals verwacht, geven deze samengevoegde cellen veel problemen. Een van de problemen is de plaatsing van de pagina eindes. De invoer zal telkens verschillend zijn, dus het is niet mogelijk om handmatig de pagina eindes in te stellen. Echter wil ik voorkomen dat mijn samengevoegde cellen gesplitst worden, want de tekst wordt daardoor verdeeld over twee verschillende pagina's (zie bijlage).
Ik zou dit probleem graag willen oplossen door bijvoorbeeld het gebruik van een macro. Op internet heb ik hier al veel over opgezocht, maar omdat ik hier geen ervaring mee heb kom ik er maar niet uit... Ik heb nu deze programmering, maar krijg telkens een foutmelding:
Sub MergedWithNext() 'FTable As Table)
Dim Tester As String
Dim FTable As Table
Dim i As Integer
Dim imax As Integer
Dim RowStart As Integer
Dim RowEnd As Integer
Dim CNMerged As Integer
Dim CNNotMerged As Integer
Dim CNMax As Integer
CNMerged = 2 'A column that is vertically merged that you don't want to split pages
CNNotMerged = 1 'A column that has no vertical mergers
Set FTable = Selection.Tables(1)
With FTable
imax = .Rows.Count
CNMax = .Columns.Count
'Start with no rows kept with next
ActiveDocument.Range(Start:=.Cell(1, 1).Range.Start, _
End:=.Cell(imax, CNMax).Range.End).ParagraphFormat.KeepWithNext = False
On Error Resume Next
For i = 2 To imax 'Assume table has header
Tester = .Cell(i, CNMerged).Range.Text
If Err.Number = 0 Then 'The first row in the merged cell will exist, others will not
'If you are back in this If statement, then you have left the previous block of rows
'even if that was a block of one. The next If statement checks to see if the previous
'row block had more than one row. If so it applies the "KeepWithNext" property
If (RowEnd = (i - 1)) Then
'.Cell(RowStart, 1).Range.ParagraphFormat.KeepWithNext = True
ActiveDocument.Range(Start:=.Cell(RowStart, CNNotMerged).Range.Start, _
End:=.Cell(RowEnd - 1, CNNotMerged).Range.End).ParagraphFormat.KeepWithNext = True
'Use RowEnd - 1 because you don't care if the whole merged block stays with the next
'row that is not part of the merger block
End If
RowStart = i 'Beginning of a possible merger block
RowEnd = 0 'Reset to 0, not really needed, used for clarity
Else
RowEnd = i 'This variable will be used to determine the last merged row
Err.Clear
End If
Next i
On Error GoTo 0
End With
End Sub
Zou iemand mij op weg willen/kunnen helpen? Wat gaat er fout in de programmering, of is er een totaal andere oplossing? Ik hoor het graag.
Bij voorbaat dank!