Avatar billede hjald8 Nybegynder
25. juni 2007 - 10:05 Der er 14 kommentarer og
1 løsning

Indholdsfortegnelse i Projektmappe med flere ark

Jeg har en projektmappe med 15 ark. Heraf skal de 9 ark medgå i en samlet udskrift. Dette har jeg fået til at fungere fint bla med en markering i de ark, der skal medgå i udprint.

Nu vil jeg imidlertid gerne lave en forside med indholdsfortegnelse - gerne med sidetal - som fx.

Indholdsfortegnelse
Ark 1.............. Side 2
Ark 2.............. Side 5
osv.

Jeg har ikke umiddelbart nogle gode ideer til løsning. Har nogen en god løsning.
Avatar billede supertekst Ekspert
25. juni 2007 - 11:08 #1
Hvis din udskrift er lagret i et ark - så kan det lade sig gøre.
Avatar billede hjald8 Nybegynder
25. juni 2007 - 12:38 #2
Jeg er ikke sikker på, at jeg forstår: 'Lagret i et ark'
Avatar billede supertekst Ekspert
25. juni 2007 - 12:47 #3
Hvis ark, der skal udskrives blev samlet i et ark til udskrift - kunne de enkelte arks placering på siderne beregnes.

I modsat fald skal der udføres en beregning på de enkelte ark for at finde sidenr. på den samlede udskrift.
Avatar billede hjald8 Nybegynder
25. juni 2007 - 15:59 #4
Som jeg ser det, er det beregningen af sidenr. på grundlag af de valgte ark, som så bliver det store problem (Idet udskiften ikke samles i et ark)
Avatar billede supertekst Ekspert
25. juni 2007 - 16:01 #5
Bliver alle rækker udskrevet fra de enkelte ark - eller kan de linier, der udskrives identificeres?
Avatar billede hjald8 Nybegynder
25. juni 2007 - 21:02 #6
Det er forholdsvis store ark, hvor de rækker som ikke skal vises - skjules via en skjul-makro. Så ja - rækkerne er identificeret ved at være sand eller falsk i kolonne A.
Avatar billede supertekst Ekspert
25. juni 2007 - 23:33 #7
Hvormange linier udskrives der pr. side?
Avatar billede supertekst Ekspert
26. juni 2007 - 13:03 #8
Forslag:
Dim arkTilPrint() As Variant
Const indhfort_Ark = "Indholdsfortegnelse"          'evt. justeres"
Const indhfort_Startræk = 3                        'Startrække- under overskrifter
Const antalRækPrSide = 56                          'justeres
Dim indhTabel(), arkNr
Sub opbygIndholdsfortegnelse()                      'evt. makro_knap skal aktivere denne "Sub"
Dim ark, antalNettolinier
Rem Opsæt arknavne, der skal udskrives
    arkTilPrint = Array("Ark1", "Ark2", "Ark3", "Ark5")            'justeres
   
Rem opsæt tabel til indholdsfortegnelse
    ReDim indhTabel(UBound(arkTilPrint), 2)
    arkNr = 0
   
Rem undersøg de enkelte ark, om de skal udskrives
    For Each ark In ActiveWorkbook.Sheets
        If skalArkUdskrives(ark.Name) = True Then
            antalNettolinier = optælNettoLinier(ark.Name)
            indhTabel(arkNr, 0) = ark.Name
            indhTabel(arkNr, 1) = antalNettolinier
            arkNr = arkNr + 1
        End If
    Next
   
    Indholdsfortegnelse
End Sub
Private Function skalArkUdskrives(arkNavn)
antal = UBound(arkTilPrint)

    For f = 0 To UBound(arkTilPrint)
        If arkNavn = arkTilPrint(f) Then
            skalArkUdskrives = True
            Exit Function
        End If
    Next f
    skalArkUdskrives = False
End Function
Private Function optælNettoLinier(ark)              'optæller IKKE-skjulte linier
Dim netto, bruttolinier
    netto = 0
    With ActiveWorkbook.Sheets(ark)
        .Activate
        bruttolinier = ActiveCell.SpecialCells(xlLastCell).Row
           
        For r = 1 To bruttolinier
            If .Rows(r).EntireRow.Hidden = False Then
                netto = netto + 1
            End If
        Next r
    End With
    optælNettoLinier = netto
End Function
Private Sub Indholdsfortegnelse()                  'indsætter indholdsfortegnelse på relevante ark
Dim linier, sideNr
    linier = 0
   
    ActiveWorkbook.Sheets(indhfort_Ark).Activate
   
    For i = 0 To UBound(indhTabel)
        ark = indhTabel(i, 0)
       
        If i = 0 Then
            sideNr = 2
        Else
            s = linier \ antalRækPrSide
            If linier Mod antalRækPrSide <> 0 Then
                s = s + 1
            End If
            sideNr = sideNr + s
        End If
        linier = indhTabel(i, 1)
       
        Cells(indhfort_Startræk + i, 1) = ark
        Cells(indhfort_Startræk + i, 2) = sideNr
    Next i
End Sub
Avatar billede hjald8 Nybegynder
26. juni 2007 - 13:10 #9
Jeg vil i løbet af dagen undersøge om jeg kan bruge ovennævnte. Det ser umiddelbart godt ud. Indtil tusind tak og jeg vender tilbage
Avatar billede supertekst Ekspert
26. juni 2007 - 13:13 #10
OK
Avatar billede hjald8 Nybegynder
30. juni 2007 - 01:17 #11
Hej supertekst. Har været syg. Vender først tilbage i løbet af nogle dage.
Avatar billede supertekst Ekspert
30. juni 2007 - 10:35 #12
ok..
Avatar billede supertekst Ekspert
23. juli 2007 - 09:36 #13
???
Avatar billede hjald8 Nybegynder
18. oktober 2007 - 06:19 #14
Supertekst>
Det er faktisk bare i orden. Fik det med nogle små tilpasninger til at fungere godt. Beklager den sene svar. Min kommentar af 30.6. var rimelig avorlig. På banen igen.
Læg et svar og på forhånd tak for tålmodighed.
Avatar billede supertekst Ekspert
18. oktober 2007 - 09:20 #15
Selv tak og du får et svar & ønske om god bedring
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