Guest User

Untitled

a guest
Aug 21st, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.41 KB | None | 0 0
  1. Finding hidden sheets (and hidden cells) in excel with VBA
  2. Sub FindHidden()
  3. Dim wks As Worksheet
  4. Dim rng As Range
  5.  
  6. For Each wks In ThisWorkbook.Worksheets
  7. If wks.Visible = xlSheetHidden Then
  8. Debug.Print "Worksheet: " & wks.Name & " is hidden."
  9. ElseIf wks.Visible = xlSheetVeryHidden Then
  10. Debug.Print "Worksheet: " & wks.Name & " is very hidden."
  11. End If
  12.  
  13. For Each rng In wks.UsedRange.Rows
  14. If rng.Hidden = True Then
  15. Debug.Print "Worksheet: " & wks.Name & " Hidden Row: " & rng.Row
  16. End If
  17. Next rng
  18.  
  19. For Each rng In wks.UsedRange.Columns
  20. If rng.Hidden = True Then
  21. Debug.Print "Worksheet: " & wks.Name & " Hidden Column: " & Left(Replace(rng.Address, "$", ""), 1)
  22. End If
  23. Next rng
  24. Next wks
  25. End Sub
  26.  
  27. Sub UnHideStuff()
  28.  
  29. '----------------------------------------------------------------------------
  30. ' UnHideStuff Macro
  31. ' Written by ProdOps
  32. ' 13-Feb-2010
  33. '
  34. ' Provides an input dialog box that displays the names of all Hidden and all
  35. ' VeryHidden worksheets in the workbook and allows the user to enter the
  36. ' name of the worksheet they want to unhide.
  37. ' * will unhide all Veryhidden sheets
  38. ' ** will unhide all Hidden sheets.
  39. ' *** will unhide all worksheets in the workbook
  40. '
  41. '----------------------------------------------------------------------------
  42.  
  43. Dim Message As String
  44. Dim Title As String
  45. Dim Default As String
  46. Dim myValue As String
  47. Dim myList As String
  48. Dim Sheetnum As Long
  49.  
  50. 'Build a list of VeryHidden Sheets
  51. myList = "'INVISIBLE WORKSHEET NAMES(*)':"
  52. For Sheetnum = 1 To Sheets.Count
  53. If Sheets(Sheetnum).Visible = 2 Then
  54. myList = myList & vbCrLf & " " & Sheets(Sheetnum).Name
  55. End If
  56. Next Sheetnum
  57. If myList = "'INVISIBLE WORKSHEET NAMES(*)':" Then
  58. myList = myList & vbCrLf & " No Invisible Sheets in This Workbook"
  59. End If
  60.  
  61. 'Build a list of Hidden Sheets
  62. myList = myList & vbCrLf & vbCrLf & "'HIDDEN WORKSHEET NAMES(**)':"
  63. For Sheetnum = 1 To Sheets.Count
  64. If Sheets(Sheetnum).Visible = 0 Then
  65. myList = myList & vbCrLf & " " & Sheets(Sheetnum).Name
  66. End If
  67. Next Sheetnum
  68. If Right(myList, 11) = "NAMES(**)':" Then
  69. myList = myList & vbCrLf & " No Hidden Sheets in This Workbook"
  70. End If
  71.  
  72. 'Build the Textbox Message & Title
  73. Message = "Enter the 'Name' of the WorkSheet to Unhide" & vbCrLf
  74. Message = Message & "Or * - All Invisible, ** - All Hidden, *** - All" & vbCrLf & vbCrLf
  75. Message = Message & myList
  76. Title = "Unhide Hidden Worksheets"
  77. Default = ""
  78.  
  79. 'Display the Message Box and retrive the user's input
  80. myValue = InputBox(Message, Title, Default)
  81.  
  82. 'Test the value entered by the user
  83. If myValue = "" Then Exit Sub 'User pressed CANCEL
  84.  
  85. If myValue = "*" Then 'User wants all the VeryHidden sheets displayed
  86. For Sheetnum = 1 To Sheets.Count
  87. If Sheets(Sheetnum).Visible = 2 Then Sheets(Sheetnum).Visible = True
  88. Next Sheetnum
  89. GoTo NormalExit
  90. End If
  91.  
  92. If myValue = "**" Then 'User wants all the Normal Hidden sheets displayed
  93. For Sheetnum = 1 To Sheets.Count
  94. If Sheets(Sheetnum).Visible = 0 Then Sheets(Sheetnum).Visible = True
  95. Next Sheetnum
  96. GoTo NormalExit
  97. End If
  98.  
  99. If myValue = "***" Then 'User wants all worksheets displayed
  100. For Sheetnum = 1 To Sheets.Count
  101. Sheets(Sheetnum).Visible = True
  102. Next Sheetnum
  103. GoTo NormalExit
  104. End If
  105.  
  106. On Error GoTo ErrorTrap
  107. Sheets(myValue).Visible = xlSheetVisible
  108. Sheets(myValue).Select
  109. Range("A1").Select
  110.  
  111. NormalExit:
  112. Exit Sub
  113.  
  114. ErrorTrap:
  115. If Err = 9 Then
  116. MsgBox "Either the Worksheet Does Not Exist or " & vbCrLf & "the Worksheet Name was Misspelled", vbCritical, "Worksheet Not Found"
  117. Err.Clear
  118. Call UnHideStuff
  119. End If
  120.  
  121. End Sub
  122.  
  123. Sub HiddenReport()
  124.  
  125. Application.ScreenUpdating = False
  126. Dim wks As Worksheet
  127. Dim rng As Range
  128. Dim sCount As Long, rCount As Long, cCount As Long
  129.  
  130. For Each wks In ThisWorkbook.Worksheets
  131. If wks.Visible = xlSheetHidden Then sCount = sCount + 1
  132. If wks.Visible = xlSheetVeryHidden Then sCount = sCount + 1
  133.  
  134. For Each rng In wks.Rows ' or wks.UsedRange.Rows
  135. If rng.Hidden = True Then rCount = rCount + 1
  136. Next
  137.  
  138. For Each rng In wks.Columns ' or wks.UsedRange.Columns
  139. If rng.Hidden = True Then cCount = cCount + 1
  140. Next
  141. Next
  142.  
  143. Application.ScreenUpdating = True
  144. MsgBox sCount & " hidden sheets found." & vbLf & _
  145. rCount & " hidden rows found." & vbLf & _
  146. cCount & " hidden columns found."
  147.  
  148. End Sub
Add Comment
Please, Sign In to add comment