Come nascondere/mostrare un foglio utilizzando vba?
Puoi utilizzare il codice VBA per nascondere o mostrare un foglio in Excel. Quando fai clic con il pulsante destro del mouse sulla scheda del foglio, puoi vedere l’opzione per nasconderlo o mostrarlo e la stessa cosa che puoi fare con un codice VBA.
In questo articolo esamineremo alcuni dei modi e dei metodi che possiamo utilizzare.
Codice VBA per nascondere un foglio
Supponiamo che tu voglia nascondere “Foglio1” dalla cartella di lavoro attiva. In questo caso dovresti usare un codice come questo.
Sheets("Sheet1").Visible = False
Nel codice sopra, hai fatto riferimento a Foglio1, hai utilizzato la proprietà visibile e l’hai modificata in false.
Crea una foglia molto nascosta
Esiste un’altra opzione che puoi utilizzare per creare un foglio molto nascosto che non può essere facilmente nascosto dall’utente.
Nascondi un foglio in base al valore di una cella
Ok, se vuoi utilizzare il valore di una cella invece di utilizzare direttamente il nome del foglio nel codice, puoi fare riferimento a questa cella.
Sheets(Range("A1").Value).Visible = True
Questo codice fa riferimento alla cella A1 e utilizza il valore lì per fare riferimento al foglio che desideri nascondere.
Link utili: Esegui una macro – Registratore di macro – Visual Basic Editor – Manuale delle macro personali
Controlla il foglio prima di nasconderlo
Puoi anche usare un piccolo codice come questo per controllare il foglio di cui vuoi nascondere o meno gli output.
Sub vba_hide_sheet() Dim sht As Worksheet For Each sht In ThisWorkbook.Worksheets If sht.Name = "Sheet1" Then sht.Visible = False Exit Sub End If Next sht MsgBox "Sheet not found", vbCritical, "Error" End Sub
Il codice sopra utilizza FOR EACH LOOP + IF STATEMENT per scorrere ogni foglio nella cartella di lavoro. E controlla il foglio che vuoi nascondere.
Nascondi tutti i fogli (tranne ActiveSheet)
Ora c’è una cosa che devi capire: non puoi nascondere tutte le foglie. Dovrebbe esserci una foglia sempre visibile.
Sub vba_hide_sheet() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets If ActiveSheet.Name <> ws.Name Then ws.Visible = False End If Next ws End Sub
Il codice precedente scorre tutti i fogli della cartella di lavoro, quindi abbina il nome di ciascun foglio al nome del foglio attivo e lo nasconde se non corrisponde.
Codice VBA per visualizzare un foglio
Per visualizzare un foglio, è necessario modificare la proprietà visibile su TRUE.
Sheets("Sheet1").Visible = False
Se il foglio che vuoi visualizzare è già visibile, questo codice non mostrerà alcun errore. Ma se questo foglio non esiste, riceverai un errore di runtime “9”.
Usa VBA per mostrare tutti i fogli nascosti
Immagina di avere diversi fogli nascosti in una cartella di lavoro e se vuoi nasconderli manualmente, devi farlo uno per uno.
Ma ecco il codice che fa questo in una volta sola.
Sub vba_unhide_sheet() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets If ws.Visible = False Then ws.Visible = True End If Next ws End Sub
Passa attraverso ogni foglia e la smaschera.