Gestione dei fogli

Ciao a tutti,
Ho trovato un file chiamato gestione fogli sul sito di Mauro, (vedi qui: http://www.maurogsc.eu/esempiforum11/esempiforum11.aspx) che si è rivelato utilissimo nel tenere nascosti i vari fogli che compongono una cartella. Volevo chiede, c'è la possibilità nel momento che seleziono la cella fare apparire 3 fogli invece di uno solo? In pratica quando vado a digitare il foglio che ho chiamato Gennaio, oltre a quel foglio mi deve apparire anche il foglio1 e il foglio11. La stessa cosa per quando riguarda gli altri mesi. Spero di essere stato chiaro.
 

Informazioni domanda


Ultimo aggiornamento febbraio 22, 2018 Visualizzazioni 139 Si applica a:
Risposta
Mauro grazie della risposta, funziona perfettamente.
Devi solo aiutarmi a capire cosa devo aggiungere al codice per fare in modo che possa visualizzare sempre tre fogli per volta oltre a quello inserito da te esempio:
Indice, Foglio2 e Foglio22
Indice, Foglio3 e Foglio33
Indice, Foglio4 e Foglio44
Indice, Foglio5 e Foglio55
Indice, Foglio6 e Foglio66
Indice, Foglio7 e Foglio77
Indice, Foglio8 e Foglio88
Indice, Foglio9 e Foglio99
Indice, Foglio10 e Foglio101
Indice, Foglio11 e Foglio111
Indice, Foglio12 e Foglio121
E' solo un esempio che illustra quello che mi servirebbe, poi per i nomi dei fogli non ci saranno problemi.  Grazie


Prova:

Public Sub mVisualizzaFoglio(ByVal shName As String)
 
    Dim sh As Worksheet
    
    Application.ScreenUpdating = False
       
    If shName = "Solo Indice" Then
        For Each sh In ThisWorkbook.Worksheets
            If sh.Name <> "Indice" Then
                sh.Visible = xlSheetVeryHidden
            End If
        Next
    ElseIf shName = "Tutti i fogli" Then
         For Each sh In ThisWorkbook.Worksheets
             sh.Visible = xlSheetVisible
         Next
    Else
        For Each sh In ThisWorkbook.Worksheets
            If sh.Name <> "Indice" Then sh.Visible = xlSheetVeryHidden
        Next
        For Each sh In ThisWorkbook.Worksheets
                Select Case shName
                    Case "Foglio2"
                        With ThisWorkbook
                            .Worksheets(shName).Visible = xlSheetVisible
                            .Worksheets("Foglio22").Visible = xlSheetVisible
                            .Worksheets("Indice").Activate
                        End With
                        Exit For
                    Case "Foglio3"
                        With ThisWorkbook
                            .Worksheets(shName).Visible = xlSheetVisible
                            .Worksheets("Foglio33").Visible = xlSheetVisible
                            .Worksheets("Indice").Activate
                        End With
                        Exit For
                    Case "Foglio4"
                        With ThisWorkbook
                            .Worksheets(shName).Visible = xlSheetVisible
                            .Worksheets("Foglio44").Visible = xlSheetVisible
                            .Worksheets("Indice").Activate
                        End With
                        Exit For

                  'eccetera eccetera
                   Case Else
                       '
                End Select
         Next
     End If
    
    Application.ScreenUpdating = True
    
    Set sh = Nothing
    
End Sub

Qui il file utilizzato per l'esempio: http://www.maurogsc.eu/esempiforum12/gestionefogli_1201.zip

--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu

Il problema è stato risolto?

Siamo spiacenti che questo non sia stato d'aiuto.

Fantastico! Grazie per aver scelto questa risposta.

Sei soddisfatto di questa risposta?

Grazie per il tuo commento, ci aiuta a migliorare il sito.

Sei soddisfatto di questa risposta?

Grazie per il tuo commento.

Risposta
Ciao a tutti,
Ho trovato un file chiamato gestione fogli sul sito di Mauro, (vedi qui: http://www.maurogsc.eu/esempiforum11/esempiforum11.aspx) che si è rivelato utilissimo nel tenere nascosti i vari fogli che compongono una cartella. Volevo chiede, c'è la possibilità nel momento che seleziono la cella fare apparire 3 fogli invece di uno solo? In pratica quando vado a digitare il foglio che ho chiamato Gennaio, oltre a quel foglio mi deve apparire anche il foglio1 e il foglio11. La stessa cosa per quando riguarda gli altri mesi. Spero di essere stato chiaro.


Grazie per aver visitato il mio sito.

Prova così:

Public Sub mVisualizzaFoglio(ByVal shName As String)

    Dim sh As Worksheet
   
    Application.ScreenUpdating = False
   
    If shName = "Tutti i fogli" Then
        For Each sh In ThisWorkbook.Worksheets
            sh.Visible = xlSheetVisible
        Next
    ElseIf shName = "Solo Indice" Then
        For Each sh In ThisWorkbook.Worksheets
            If sh.Name <> "Indice" Then
                sh.Visible = xlSheetVeryHidden
            End If
        Next
    Else
        For Each sh In ThisWorkbook.Worksheets
            Select Case sh.Name
                Case "Indice", shName, "Foglio1", "Foglio11"
                    sh.Visible = xlSheetVisible
                    ThisWorkbook.Worksheets("Indice").Activate
                Case Else
                    sh.Visible = xlSheetVeryHidden
            End Select
        Next
    End If
   
    Application.ScreenUpdating = True
   
    Set sh = Nothing
   
End Sub

Il codice fa riferimento al file sul sito. L parte modificata è questa:

                Case "Indice", shName, "Foglio1", "Foglio11"
                    sh.Visible = xlSheetVisible
                    ThisWorkbook.Worksheets("Indice").Activate

--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu

Il problema è stato risolto?

Siamo spiacenti che questo non sia stato d'aiuto.

Fantastico! Grazie per aver scelto questa risposta.

Sei soddisfatto di questa risposta?

Grazie per il tuo commento, ci aiuta a migliorare il sito.

Sei soddisfatto di questa risposta?

Grazie per il tuo commento.