Avatar billede hoell Nybegynder
03. december 2007 - 18:26 Der er 4 kommentarer og
1 løsning

Lave indholdsfortegnelse

Hej jeg har prøvet ASAP utilities til at generere en indholdsfortegnelse, men den laver uroden i rækkefølgen, hvis diagrammer og ark er blandede.

Er der nogen der kan hjælpe med en lille makro der kan hjælpe mig?

Altså oprette en indholdsfortegnelse i det aktive ark, ikke først tage diagrammer og så derefter ark (eller omvendt).
Avatar billede jkrons Professor
03. december 2007 - 18:41 #1
Denne makro indsætter en liste over ark i a kolonnen i det aktive ark.
Sub ListArk()
    Dim i As Long, sh As Object
    i = 0
    For Each sh In Sheets
        i = i + 1
        Cells(i, 1).Value = sh.Name
    Next
End Sub

Skal den være mere specifik, må du lige sige til.
Avatar billede jkrons Professor
03. december 2007 - 19:05 #2
Her er en lidt udvidet variant, som dels altid indsætter listen i det første ark i mmppen (sørg for at det der tomt). Dels indsættes der hyperlinks til alle ark. Hyperlinks til diagrammer vil dog ikke virke, da der ikke kan oprettes hyperlinks til diagramark i Excel.

Sub ListArk()

    Dim i As Long, sh As Object
    Sheets(1).Range("A:A").ClearContents
    i = 0
    For Each sh In Sheets
        i = i + 1
        Sheets(1).Cells(i, 1).Value = sh.Name
    Next
    For Each c In Sheets(1).Range("a:a").Cells
        If Not IsEmpty(c.Value) Then
            c.Select
            ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
            c.Value & "!A1", TextToDisplay:=c.Value
        End If
    Next

End Sub
Avatar billede jkrons Professor
03. december 2007 - 19:14 #3
En anden mulighed er at nøjes med dette:

Sub ListArk()
    Dim i As Long, sh As Object
    Sheets(1).Range("A:A").ClearContents
    i = 0
    For Each sh In Sheets
        i = i + 1
        Sheets(1).Cells(i, 1).Value = sh.Name
    Next
End Sub

Du kan så lægge denne kode i ark1's kodemodul:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Not Intersect(Target, Range("a:a")) Is Nothing Then
          On Error Resume Next
          Charts(Target.Value).Activate
          If err.Number <> 0 Then
                Sheets(Target.Value).Activate
          End If
          On Error GoTo 0
      End If
End Sub

Så vil du hoppe til det relevante ark, hvis du klikker på en celle, der indeholder et arknavn, hvad enten dette er et regneark eller et diagram.
Avatar billede hoell Nybegynder
03. december 2007 - 21:16 #4
Super Jkrons et svar så er points
Avatar billede jkrons Professor
03. december 2007 - 21:25 #5
Her er et 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