• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

pagina nummer in cel

Status
Niet open voor verdere reacties.

citrosphere

Gebruiker
Lid geworden
28 apr 2004
Berichten
13
Goedemiddag,

IVM het maken van een index wil ik in bepaalde cellen het pagina nummer laten zien.

Hoe moet ik dat doen ?

Gr Ed
 
Nee sorry.

In mijn werkblad achter alle data wil ik in een kolom het huidige pagina nummer weergeven.

Dus bijvoor beeld

Artikelnr1 - omschrijving - prijs - paginanr
Artikelnr2 - omschrijving - prijs - paginanr

Gr Ed
 
re sheetnaam in cel

beste citrosphere,

bedoel je zoiets als in de bijlage is een functie definieren in een module en dan in de cel de formule =Bladnaam()

suc6 Willem
 

Bijlagen

Ha willem,

Bedankt voor je reactie.

Ik bedoel het paginanummer waar deze cel op dit moment in staat.

De versie van excel die ik heb is engels.

Groetjes Ed
 
Ed

dat gaat niet gemakkelijk zijn. Er is nl. geen standaard eigenschap van een cel die het paginanummer kan weergeven. Ik zal proberen of ik er code voor kan schrijven.

Wigi
 
Hier is alvast de oplossing door Ron de Bruin, dit geeft het paginanummervan de actieve cel:

Code:
Function PageNumber() As Integer

    Dim VPC As Integer, HPC As Integer
    Dim VPB As VPageBreak, HPB As HPageBreak
    Dim NumPage As Integer

    If ActiveSheet.PageSetup.Order = xlDownThenOver Then
        HPC = ActiveSheet.HPageBreaks.Count + 1
        VPC = 1
    Else
        VPC = ActiveSheet.VPageBreaks.Count + 1
        HPC = 1
    End If
    NumPage = 1
    For Each VPB In ActiveSheet.VPageBreaks
        If VPB.Location.Column > ActiveCell.Column Then Exit For
        NumPage = NumPage + HPC
    Next VPB
    For Each HPB In ActiveSheet.HPageBreaks
        If HPB.Location.Row > ActiveCell.Row Then Exit For
        NumPage = NumPage + VPC
    Next HPB

    PageNumber = NumPage

End Function

Wigi
 
Ik zal proberen of ik er code voor kan schrijven.

Het is gelukt ;)

Hier is mijn stukje code:

Code:
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

Selecteer het bereik waar paginanummers moeten komen, en voer de code uit.

Wigi
 
Laatst bewerkt:
Beperkte tests wezen tot mijn verbazing uit dat mijn code sneller werkt dan die van Ron. :)

+/- 25 % korter in tijd.

Wigi
 
Laatst bewerkt:
Bedankt Wigi,

Ik ga proberen dit voor elkaar te krijgen.

Helaas sta ik op een beurs dus heb morgen pas tijd.

Laat je weten of het gelukt is.

Gr Ed
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan