Both are a bit hard to implement/use in this case,"
I do not see why. As macropod mentions, the repeating header row is the first row - or rows - of the table. It MUST include the first row(s). Therefore simply format the row(s) you are using for repeat as you want them, and then set the repeat. This is not a hard implementation.
Code:
With ActiveDocument.Tables(1).Rows(1)
.Shading.Texture = wdTexture20Percent
.HeadingFormat = wdToggle
End With
shades the first row of table(1), and then makes that row the repeating header.
If you need to use more than one row as the repeating header row, then one way (there are other ways) is:
Code:
Dim r As Range
Set r = ActiveDocument.Range( _
Start:=ActiveDocument.Tables(1).Rows(1).Range.Start, _
End:=ActiveDocument.Tables(1).Rows(2).Range.End)
With r
.Shading.Texture = wdTexture20Percent
.Rows.HeadingFormat = wdToggle
End With
This makes a range object of the first two rows of table(1), and then formats those rows, and then uses them for the repeating header.
Unless you have something very odd going on, it should not be difficult to incorporate a different format for the rows you want to use for repeating header rows. It should not be affected by any "hefty" VBA code, nor by the issue of printing. In fact, I do not see any issue with printing at all. Why do you think that printing may be a factor?
Gerry