View Single Post
Old 05-19-2011, 07:12 PM   #1
bushufusi551
 
Posts: n/a
Default Windows 7 Ultimate Key Creating a TOC with Hyperli

Today's author is Dennis Wallentin,Office Professional 2007, XL-Dennis, of A few weeks ago we posted a code example for creating a table of contents for your workbook. Dennis offers another approach with this code sample for creating a TOC with hyperlinks. Dennis’ code uses the PageSetup.Pages().Count property, introduced in Excel 2007, to calculate the number of pages on each sheet. In addition, the entries in the TOC link to their respective sheets to improve on-screen workbook navigation. Option Explicit Sub Create_TOC()
Dim wbBook As Workbook
Dim wsActive As Worksheet
Dim wsSheet As Worksheet Dim lnRow As Long
Dim lnPages As Long
Dim lnCount As Long Set wbBook = ActiveWorkbook With Application
    .DisplayAlerts = False
    .ScreenUpdating = False
End With 'If the TOC sheet already exist delete it and add a new
'worksheet. On Error Resume Next
With wbBook
    .Worksheets("TOC").Delete
    .Worksheets.Add Before:=.Worksheets(1)
End With
On Error GoTo 0 Set wsActive = wbBook.ActiveSheet
With wsActive
    .Name = "TOC"
    With .Range("A1:B1")
        .Value = VBA.Array("Table of Contents",Office 2010 Key, "Sheet # - # of Pages")
        .Font.Bold = True
    End With
End With lnRow = 2
lnCount = 1 'Iterate through the worksheets in the workbook and create
'sheetnames,Windows 7 Ultimate Key, add hyperlink and count & write the running number
'of pages to be printed for each sheet on the TOC sheet.
For Each wsSheet In wbBook.Worksheets
    If wsSheet.Name <> wsActive.Name Then
        wsSheet.Activate
        With wsActive
            .Hyperlinks.Add .Cells(lnRow, 1),Office Professional Plus 2010, "", _
            SubAddress:="'" & wsSheet.Name & "'!A1", _
            TextToDisplay:=wsSheet.Name
            lnPages = wsSheet.PageSetup.Pages().Count
            .Cells(lnRow,Windows 7 Activation, 2).Value = "'" & lnCount & "-" & lnPages
        End With
        lnRow = lnRow + 1
        lnCount = lnCount + 1
    End If
Next wsSheet wsActive.Activate
wsActive.Columns("A:B").EntireColumn.AutoFit With Application
    .DisplayAlerts = True
    .ScreenUpdating = True
End With End Sub <div
  Reply With Quote

Sponsored Links