• 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.

Hoe maak ik een inhoudsopgave met paginanummers in excel?

Status
Niet open voor verdere reacties.

matthiej88

Gebruiker
Lid geworden
21 jan 2010
Berichten
85
hallo!

Ik heb in excel een projectplan opgesteld, waarbij alleen de eerste pagina ingevuld hoeft te worden.

Hier moet eigenlijk wel een inhoudsopgave bij. ik ben hier al even mee bezig, maar ik kom er niet helemaal uit.

De plaats van de koppen kan eventueel veranderen, dus ik dacht eraan om de functie vert. zoeken te gebruiken. Als het kopje dan 2 of 3 rijen naar beneden verplaatst wordt, vindt hij nogsteeds de waarde. Dit lukt wel enigsinds, maar optimaal is het nog niet.

Er zitten meerdere hoofdstukken in 1 werkblad, en ook hoofdstukken op een ander werkblad. Is het mogelijk om te zoeken naar de waarden 1.1, 1.2, 1.3 etc, en daar een lijst van te maken?

Om het nog lastiger te maken, achter 't hoofdstuk of subhoofdstuknummer moet ook nog een paginanummer komen. kun je excel het paginanummer laten genereren aan de hand van de plaats waar een waarde staat?

Ik snap visual basic een (heel) klein beetje, dus als 't ff kan, een uitleg in lekentaal ;)

In 't voorbeeld staat "schematisch" weergegeven hoe 't eruit ziet.

Alvast bedankt!
 

Bijlagen

  • voorbeeld.xls
    18 KB · Weergaven: 557
Hallo matthiej88,

Ik zou dit absoluut niet in Excel doen, maar in Word. Daar zit een standaard optie in om inhoudsopgaves te maken. Daar kun je zelfs ten aanzien van de layout nog aangeven hoe een en ander er uit moet zien. Ook worden daarbij automatisch pagina nummers opgenomen. en als je op meerdere niveau's werkt kun je zelfs aangeven welke niveau's wel en welke niet moeten worden meegenomen in de inhoudsopgave (waarvoor je overigens ook vrij een plek kunt kiezen in je document).
 
Ik weet dat het in word 300x makkelijker gaat.. Het is echter de bedoeling dat er via 1 invulblad het hele verslag wordt ingevuld. Daarnaast klopt alles al aan het verslag, behalve de inhoudsopgave. Er moet toch op de 1 of andere manier een verwijzing kunnen worden gemaakt, waardoor het paginanummer wordt weergegeven waarop een bepaalde cel staat.

Mijn idee was om via de zoekfunctie te zoeken naar bijv 1. Inleiding met als uitkomst het paginanummer.. dit moet toch kunnen?
 
Ik ken die mogelijkheid niet en als die er niet is en hij zou gemaakt moeten worden dan verwacht ik dat het een erg omvangrijk en ingewikkeld geheel zal zijn.

Mijn idee zou toch zijn:
Als je alles wilt invoeren in Excel, prima, maar de laatste (opmaak) slag zou ik toch doen in Word.
 
Laatst bewerkt:
IK heb al een functie gevonden die de paginanummers genereerd:

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

Door de macro te activeren in alle cellen van een extra toegevoegde kolom op het blad, die ik later gewoon verberg, staat het paginanummer altijd naast het hoofdstuknummer.

Als ik er dan in de zoekfunctie voor kan zorgen dat hij het hoofdstuknummer opzoekt en dan de waarde geeft uit de extra toegevoegde kolom, komt het paginanummer op die plek te staan.

Volgens mij moet dit wel lukken, nog even stoeien:)
 
Het is inmiddels gelukt met de inhoudsopgave

Deze functie in vba plakken:

Function pagina(c0 As Range)
With Sheets("Inhoud")
For jj = 1 To .HPageBreaks.Count
If .HPageBreaks(jj).Location.Row > c0.Row Then Exit For
Next
pagina = jj
End With
End Function

en deze functie in de cel plakken waar het paginanummer moet komen te staan:

=pagina(VERSCHUIVING(Tabbladnaam!$C$1;VERGELIJKEN($B4;Inhoud!$C$2:$C$500;0);0))

Tip: zet automatisch berekenen uit, deze functie maakt de werkmap traag.
Maak dan een macro die ervoor zorgt dat altjid voor 't printen wordt berekend. Volgens mij zoiets als dit:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Calculate
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan