/ / Listar planilhas ocultas - excel, excel-vba, vba

Listar planilhas ocultas - excel, excel-vba, vba

Eu tenho um registro de materiais que estou criando

Devido à regulamentação quando um material (cada materialtem sua própria planilha com um número aleatório de 3 dígitos adicionado no final para permitir que o mesmo nome várias vezes) seja excluído, ele não pode ser excluído. Por isso, minha pasta de trabalho oculta a planilha e uma verificação de exclusão na página de resumo a linha apropriada.

No entanto, o que estou lutando é uma função para restaurar a folha,

Eu tenho o código que eu preciso fazer isso no entanto não consigo encontrar qualquer função para listar folhas ocultas.

Esta lista pode ser colocada no livro de trabalho em uma coluna oculta para que eu possa referenciá-lo com a minha macro, mas como eu disse não consigo encontrar de qualquer maneira para listar apenas as folhas que estão ocultas.

Obrigado pela ajuda

Respostas:

1 para resposta № 1

Você poderia adicionar ao seu código que faz a ocultação para escrever o nome da planilha que ele está escondendo para sua outra guia oculta, e adicionar o reverso ao seu código que ele exibe.

Não tenho certeza se o abaixo é aplicável à sua situação, mas você também pode colocar algum código em eventos de planilha para capturar quando a planilha está sendo tornada invisível

Private Sub Worksheet_Deactivate()
If Me.Visible = xlSheetHidden Then MsgBox "I have been hidden"
End Sub

0 para resposta № 2

Isso ajuda ..

" Function to be used in array formula on sheet to list hidden sheets
Public Function ListHiddenSheets()
Dim hiddenSheets As New dictionary

Dim sheet As Worksheet
For Each sheet In Worksheets
If sheet.Visible <> xlSheetVisible Then hiddenSheets.Add sheet.Name, Null
Next sheet

Dim vRes() As Variant
ReDim vRes(0 To hiddenSheets.Count, 0 To 0)

Dim idx As Integer
For idx = 0 To hiddenSheets.Count - 1
vRes(idx, 0) = hiddenSheets.keys(idx)
Next idx

ListHiddenSheets = vRes
End Function

?


0 para resposta № 3

Folhas ocultas podem ser Escondido ou Muito oculto, para capturar estes:

ub ListEm()
Dim ws As Worksheet
Dim StrHid As String
Dim strVHid As String
For Each ws In ActiveWorkbook.Worksheets
Select Case ws.Visible
Case xlSheetVisible
Case xlSheetHidden
StrHid = StrHid & ws.Name & vbNewLine
Case Else
strVHid = strVHid & ws.Name & vbNewLine
End Select
Next
If Len(StrHid) > 0 Then MsgBox StrHid, vbOKCancel, "Hidden Sheets"
If Len(strVHid) > 0 Then MsgBox strVHid, vbOKCancel, "Very Hidden Sheets"
End Sub