|
|
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
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
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 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
Grazie Mauro Ancora una volta sei stato eccezionale.
Volevo aggiungere che oltre ad essere il migliore, riesci a rendere semplice le cose difficili, quando scrivi i codici riesci a dare anche un tocco di eleganza.
Grazie dei complimenti, ma non stuzzicare il mio ego che già non è male...;-)
Buon lavoro.
Immetti l'ID thread del thread in cui si esegue l'unione
Per segnalare un abuso, accedi o continua senza accedere
Grazie.
|
|
|
|
Non possiedi uno di questi account?