/ / Liste des feuilles de calcul masquées - excel, excel-vba, vba

Liste des feuilles de travail cachées - excel, excel-vba, vba

J'ai un registre de matériel que je crée

En raison de la réglementation quand un matériau (chaque matériaua sa propre feuille de travail avec un nombre aléatoire de 3 chiffres ajouté à la fin pour permettre le même nom plusieurs fois) est supprimé, il ne peut pas réellement être supprimé, donc pour contourner ce problème, mon classeur masque la feuille et utilise un contrôle de suppression sur la page de résumé masque la rangée appropriée.

Cependant, je me bats avec une fonction pour restaurer la feuille,

J'ai le code dont j'ai besoin pour le faire mais je ne trouve aucune fonction lister les feuilles cachées.

Cette liste peut être placée dans le livre de travail dans une colonne masquée afin que je puisse la référencer avec ma macro, mais comme je l’ai dit, je ne trouve pas le moyen de répertorier uniquement les feuilles masquées.

Merci de votre aide

Réponses:

1 pour la réponse № 1

Vous pouvez ajouter à votre code ce qui est caché pour écrire le nom de la feuille cachée dans votre autre onglet masqué, et ajouter l’inverse au code qui le masque.

Vous ne savez pas si le texte ci-dessous est applicable à votre situation, mais vous pouvez également insérer du code dans les événements de la feuille de travail à capturer lorsque la feuille est rendue invisible

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

0 pour la réponse № 2

Est-ce que cela aide ..

" 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 pour la réponse № 3

Les feuilles cachées peuvent être Caché ou Très caché, pour capturer ces:

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