Sub PaginaNummersSelectie()
'main procedure die een lus is door de cellen van het bereik
'zie ook de 3 andere functies die gebruikt worden
Dim c As Range, AantVerticBereik As Integer, AantHorizBereik As Integer
Application.ScreenUpdating = False
ActiveWindow.View = xlPageBreakPreview
Selection.Parent.DisplayPageBreaks = True
On Error Resume Next
For Each c In Selection
c.Value = PaginaNummer(c)
Next
On Error GoTo 0
Selection.Parent.DisplayPageBreaks = False
ActiveWindow.View = xlNormalView
Application.ScreenUpdating = True
End Sub
Function PaginaNummer(rng As Range) As Integer
'functie nodig bij het bepalen van het paginanummer van een cel
'geeft het eigenlijke paginanummer
PaginaNummer = (AantVpBreaks(Range("A1").Resize(, rng.Column)) + 1) * _
(AantHpBreaks(Range("A1").Resize(rng.Row)) + 1)
End Function
Function AantVpBreaks(r As Range) As Integer
'functie nodig bij het bepalen van het paginanummer van een cel
'geeft het aantal verticale pagina-eindes links van r
Dim i As Integer
For i = 1 To r.Parent.VPageBreaks.Count
If Intersect(r.Parent.VPageBreaks(i).Location, r) Is Nothing Then Exit For
Next
AantVpBreaks = i - 1
End Function
Function AantHpBreaks(r As Range) As Integer
'functie nodig bij het bepalen van het paginanummer van een cel
'geeft het aantal horizontale pagina-eindes boven r
Dim i As Integer
For i = 1 To r.Parent.HPageBreaks.Count
If Intersect(r.Parent.HPageBreaks(i).Location, r) Is Nothing Then Exit For
Next
AantHpBreaks = i - 1
End Function