+ Reply to Thread
Results 1 to 3 of 3

How do I make a cell reference to a sheet title name

  1. #1
    trtfn
    Guest

    How do I make a cell reference to a sheet title name

    I have a workbook with 26 worksheets in it, and on one page I wish for cells
    to reference the names on the worksheet tabs.

  2. #2
    Gary L Brown
    Guest

    RE: How do I make a cell reference to a sheet title name

    Here's a macro to create a Table of Contents...

    '/==============================================/
    Public Sub WorkBookTableOfContents()
    'Create a separate worksheet with the name of each sheet
    ' in the workbook as a hyperlink to that sheet -
    ' i.e. a Table Of Contents
    '07/25/2000 - allow for chart sheets
    '08/11/2005 - add Protect/Unprotect information
    Dim iRow As Integer, iColumn As Integer, y As Integer
    Dim i As Integer, x As Integer, iSheets As Integer
    Dim objOutputArea As Object
    Dim strTableName As String, strSheetName As String
    Dim strOrigCalcStatus As String

    strTableName = "Table_of_Contents"

    'check for an active workbook
    If ActiveWorkbook Is Nothing Then 'no workbooks open, so create one
    Workbooks.Add
    End If

    'Count number of sheets in workbook
    iSheets = ActiveWorkbook.Sheets.Count

    'Check for duplicate Sheet name
    i = ActiveWorkbook.Sheets.Count
    For x = 1 To i
    If Windows.Count = 0 Then Exit Sub
    If UCase(Sheets(x).name) = UCase(strTableName) Then
    Sheets(x).Activate
    If Err.Number = 9 Then
    Exit For
    End If
    'turn warning messages off
    Application.DisplayAlerts = False
    ActiveWindow.SelectedSheets.Delete
    'turn warning messages on
    Application.DisplayAlerts = True
    Exit For
    End If
    Next

    'Add new sheet at end of workbook
    ' where results will be located
    Sheets.Add.Move Before:=Sheets(1)

    'Name the new worksheet and set up Titles
    ActiveWorkbook.ActiveSheet.name = strTableName
    ActiveWorkbook.ActiveSheet.Range("A1").value = _
    "Worksheet (hyperlink)"
    ActiveWorkbook.ActiveSheet.Range("B1").value = _
    "Visible / Hidden"
    ActiveWorkbook.ActiveSheet.Range("C1").value = _
    "Prot / Un"
    ActiveWorkbook.ActiveSheet.Range("D1").value = _
    " Notes: "

    'Count number of sheets in workbook
    iSheets = ActiveWorkbook.Sheets.Count

    'Initialize row and column counts for putting
    ' info into StrTableName sheet
    iRow = 1
    iColumn = 0

    Set objOutputArea = _
    ActiveWorkbook.Sheets(strTableName).Range("A1")

    'Check Sheet names
    For x = 1 To iSheets
    strSheetName = Sheets(x).name
    'put information into StrTableName worksheet
    With objOutputArea
    If strSheetName <> strTableName Then
    .Offset(iRow, iColumn) = " " & strSheetName
    If UCase(TypeName(Sheets(x))) <> "CHART" Then
    Sheets(x).Hyperlinks.Add _
    Anchor:=objOutputArea.Offset(iRow, _
    iColumn), _
    Address:="", SubAddress:=Chr(39) & _
    strSheetName & Chr(39) & "!A1"
    End If
    If Sheets(x).Visible = True Then
    .Offset(iRow, iColumn + 1) = " Visible"
    .Offset(iRow, iColumn).Font.Bold = True
    .Offset(iRow, iColumn + 1).Font.Bold = True
    Else
    .Offset(iRow, iColumn + 1) = " Hidden"
    End If
    If Sheets(x).ProtectContents = True Then
    .Offset(iRow, iColumn + 2) = " P"
    Else
    .Offset(iRow, iColumn + 2) = " U"
    End If
    iRow = iRow + 1
    End If
    End With
    Next x

    Sheets(strTableName).Activate

    'make comment
    Range("C1").AddComment

    With Range("C1").Comment
    .Visible = False

    .Text Text:= _
    "Protected / Unprotected Worksheet"

    End With

    'format worksheet
    Range("A:D").Select
    With Selection
    .HorizontalAlignment = xlLeft
    .VerticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .IndentLevel = 0
    .ShrinkToFit = False
    .MergeCells = False
    End With
    With Selection.Font
    .name = "Tahoma"
    '.FontStyle = "Regular"
    .Size = 10
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleNone
    '.ColorIndex = xlAutomatic
    End With

    Range("A2").Select
    ActiveWindow.FreezePanes = True
    Range("A1").Font.Bold = True
    Columns("A:D").EntireColumn.AutoFit

    Range("A1:D1").Select
    With Selection
    .HorizontalAlignment = xlCenter
    .Font.Underline = xlUnderlineStyleSingle
    End With

    Range("B1").Select
    With ActiveCell.Characters(Start:=1, Length:=7).Font
    .FontStyle = "Bold"
    End With
    With ActiveCell.Characters(Start:=8, Length:=9).Font
    .FontStyle = "Regular"
    End With

    Columns("A:D").EntireColumn.AutoFit
    Range("A1:D1").Font.Underline = _
    xlUnderlineStyleSingleAccounting

    Range("B:B").HorizontalAlignment = xlCenter

    Range("C1").WrapText = True
    Columns("C:C").HorizontalAlignment = xlCenter
    Rows("1:1").RowHeight = 100
    Columns("C:C").ColumnWidth = 5.15
    Rows("1:1").EntireRow.AutoFit

    Range("D1").HorizontalAlignment = xlLeft
    Columns("D:D").ColumnWidth = 65

    Range("B1").Select

    Selection.AutoFilter

    Application.Dialogs(xlDialogWorkbookName).Show

    End Sub
    '/==============================================/






    HTH,
    --
    Gary Brown
    gary_brown@ge_NOSPAM.com
    If this post was helpful, please click the ''Yes'' button next to ''Was this
    Post Helpfull to you?''.


    "trtfn" wrote:

    > I have a workbook with 26 worksheets in it, and on one page I wish for cells
    > to reference the names on the worksheet tabs.


  3. #3
    Gord Dibben
    Guest

    Re: How do I make a cell reference to a sheet title name

    How have the worksheets been named?

    Unique names or just Sheet1, Sheet2 etc?

    If Sheet1 etc. a formula

    =INDIRECT("Sheet" & (ROW()-1) & "!E3")

    Gives Sheet1!E3. When copied down, A2 will be Sheet2!E3, etc.

    If unique, you will have to get the names into a list on one sheet and reference
    them from that list.

    To list the sheets into a sheet in Column A

    Best to insert a new worksheet then run the macro.

    Private Sub ListSheets()
    'list of sheet names starting at A1
    Dim Rng As Range
    Dim i As Integer
    Set Rng = Range("A1")
    For Each Sheet In ActiveWorkbook.Sheets
    Rng.Offset(i, 0).Value = Sheet.Name
    i = i + 1
    Next Sheet
    End Sub


    Gord Dibben Excel MVP



    On Thu, 26 Jan 2006 08:16:04 -0800, "trtfn" <trtfn@discussions.microsoft.com>
    wrote:

    >I have a workbook with 26 worksheets in it, and on one page I wish for cells
    >to reference the names on the worksheet tabs.


    Gord Dibben MS Excel MVP

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1