Avatar billede ksattrup Nybegynder
05. december 2006 - 09:35 Der er 11 kommentarer og
1 løsning

Sidetal med autofilter.

Hej!

Jeg har et problem med mine excel ark. Problemet er at når jeg giver sidehovedet auto.sidetal så kommer det også til syne, når jeg kigger på min udskrift, men idet at jeg har sat autofilter på nogle af linierne og det fx gør det filteres mere end en side fra, så springer sidetallet fra fx side 10 direkte til side 12 selvom der på den pågældende side 12 jo gerne have skulle stået side 11.

Er der nogen som kan hjælpe mig med dette?
Avatar billede supertekst Ekspert
05. december 2006 - 10:42 #1
Hvad med autofilter på kolonner?
Avatar billede ksattrup Nybegynder
05. december 2006 - 11:44 #2
Jeg er ikke helt sikker på hvad du mener?
Avatar billede supertekst Ekspert
05. december 2006 - 11:53 #3
OK - jeg har forsøgt at filtrere 150 rækker - uden at dette har givet problemer med sidetallene. Du er velkommen til at sende din fil (med sat filter) til: pb@supertekst-it.dk - så er det lettere at se problemet.
Avatar billede ksattrup Nybegynder
05. december 2006 - 14:26 #4
Autofilter på kolonnerne hjalp - det var bare mig som ikke kunne finde ud af at markere flere ark på samme tid og så gå i sidehovedet for at lave aut. sidetal.

Lige et spørgsmål til, kan man lave referencer til sidetallene i sidehovedet med en formel, her tænker jeg på at jeg vil lave en indholdfortegnelse?
Avatar billede supertekst Ekspert
05. december 2006 - 14:53 #5
Har ingen erfaring med det - men måske...
Hvor skal indholdsfortegnelsen opbygges?
Avatar billede ksattrup Nybegynder
05. december 2006 - 14:58 #6
Den ligger i samme projektmappe, men bare i et andet ark. - hvis det er det du mener?
Den skal også kun henvise til de ark, som jeg har sat sidetal på - der er nemlig også nogle ark uden sidetal og de skal ikke med.
Avatar billede supertekst Ekspert
05. december 2006 - 15:19 #7
OK - så vidt jeg ved findes der ingen funktion, der opbygger indholdsfortegnelse.
Måske kan der konstrueres "noget" via VBA.
Hvilke rækker skal indgå i indholdsfortegnelsen?
Avatar billede supertekst Ekspert
06. december 2006 - 09:03 #8
Her er VBA-kode, der skal indsættes i ARK1 i VBA-vinduet (Alt+F11) - behandler p.t. kun eet ark. Princippet er på basis af de sideskift, som Excel opretter i arket.
I koden er det celler i kolonne A, der er forsynet med FED, der anvendes i indholdsfortegnelsen - men det kan ajourføres.

Du skriver, at der skal arbejdes med flere ark - det er endnu ikke udviklet.

Men prøv dette i første omgang - koden afvikles ved F5, når markøren er i
SUB Indholdsfortegnelse:


Dim ræk, hpArr(), antalSideskift, rækNr, antalRækker
Dim indhRæk
Sub Indholdsfortegnelse()
Dim f
    ActiveWorkbook.Sheets("Ark1").Activate
   
    antalRækker = ActiveCell.SpecialCells(xlLastCell).Row
    Cells(antalRækker, 1).Select
   
Rem Hent antallet af sideskift (vandrette)
    antalSideskift = Worksheets("Ark1").HPageBreaks.Count
    ReDim hpArr(antalSideskift + 1)

Rem Opsæt sideskift med 1. række pr.side
    For f = 1 To antalSideskift
        rækNr = Worksheets("Ark1").HPageBreaks(f).Location
        hpArr(f) = rækNr
    Next f

Rem Tildel sidenr.
    For ræk = 1 To antalRækker
        Cells(ræk, 1).Activate
        sideNr = findSideNr(ræk)
        Cells(ræk, 2) = sideNr                      'test: sidenr indsættes i række 2
    Next ræk
   
Rem opbyg indholdsfortegnelse
    If findesIndholdsfortegnelse = False Then
        Sheets.Add
        ActiveSheet.Name = "Indholdsfortegnelse"
    Else
        With Sheets("Indholdsfortegnelse")          'slet indhold, hvis findes i forvejen
            .Columns.Clear
        End With
    End If
   
    opbygIndholdsfortegnelse
   
End Sub
Private Function findSideNr(ræk)
Dim a
    For a = 1 To antalSideskift
        If ræk < hpArr(a) Then
            findSideNr = a
            Exit Function
        End If
    Next a
    findSideNr = antalSideskift + 1
End Function
Private Sub opbygIndholdsfortegnelse()
Dim ræk
    indhRæk = 1
   
    Sheets("Ark1").Activate
    For ræk = 1 To antalRækker
        If Cells(ræk, 1).Font.Bold = True Then      'Hvis cellen i kolonne A er med FED - så indgå i indh.fortegnelse
            With Sheets("Indholdsfortegnelse")
                .Cells(indhRæk, 1) = Cells(ræk, 1)
                .Cells(indhRæk, 2) = findSideNr(ræk)
                indhRæk = indhRæk + 1
            End With
        End If
    Next ræk
End Sub
Private Function findesIndholdsfortegnelse()
Dim ark
    For ark = 1 To ActiveWorkbook.Sheets.Count
        If LCase(Sheets(ark).Name) = "indholdsfortegnelse" Then
            findesIndholdsfortegnelse = True
            Exit Function
        End If
    Next ark
    findesIndholdsfortegnelse = False
End Function
Avatar billede ksattrup Nybegynder
12. december 2006 - 09:35 #9
Tak for koden...Den virker rigtig nok på et ark og det er da også en god idé med at den tager den fede skrift, så tak skal du have.
Avatar billede ksattrup Nybegynder
12. december 2006 - 09:41 #10
du får point
Avatar billede supertekst Ekspert
12. december 2006 - 09:41 #11
Så får du et svar.
Avatar billede supertekst Ekspert
12. december 2006 - 10:30 #12
Hvis du vil give points - så skal du acceptere mit svar :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester