Note: The other languages of the website are Google-translated. Back to English

Come nascondere o mostrare un foglio di lavoro specifico in base al valore della cella in un altro foglio?

Esistono metodi per nascondere o mostrare una scheda specifica del foglio di lavoro in base al contenuto di una cella in un altro foglio? Ad esempio, quando inserisco il testo "Sì" nella cella G1 di Foglio2, desidero che il Foglio1 sia nascosto e quando inserisco "No", il Foglio1 venga visualizzato immediatamente. Come posso risolvere questo problema in Excel?

Nascondi o mostra una scheda del foglio di lavoro specifica in base al valore della cella con codice VBA


freccia blu freccia destra Nascondi o mostra una scheda del foglio di lavoro specifica in base al valore della cella con codice VBA

Per nascondere o mostrare una scheda specifica del foglio di lavoro in base al valore di una cella in un altro foglio di lavoro, il seguente codice VBA potrebbe farti un favore, per favore fai come segue:

1. Vai al foglio di lavoro che contiene il valore della cella su cui desideri nascondere un altro foglio.

2. Fare clic con il pulsante destro del mouse sulla scheda del foglio e selezionare Visualizza codice, nel saltato fuori Microsoft Visual Basic, Applications Edition finestra, copia e incolla il seguente codice nella finestra del modulo vuota, vedi screenshot:

Codice VBA: nascondi o nascondi una scheda del foglio di lavoro in base al valore della cella:

Private Sub Worksheet_Change(ByVal Target As Range)
If [G1] = "Yes" Then
Sheets("Sheet1").Visible = True
Else
Sheets("Sheet1").Visible = False
End If
End Sub

scheda nascondi doc in base al valore della cella 1

NOTA: Nel codice sopra, G1 e Sì sono la cella e il contenuto della cella su cui vuoi basarti, e Sheet1 è il foglio specifico che desideri nascondere o mostrare. Puoi cambiarli secondo le tue necessità.

3. Quindi salva e chiudi questo codice, quando inserisci "No" o altro testo nella cella G1, Sheet1 è nascosto, ma se inserisci "Sì" nella cella, Sheet1 viene visualizzato immediatamente, vedi screenshot:

scheda nascondi doc in base al valore della cella 2
1
scheda nascondi doc in base al valore della cella 3

 


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office/Excel 2007-2021 e 365. Supporta tutte le lingue. Facile implementazione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
fondo officetab

 

Commenti (23)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Ciao
Grazie per il suggerimento. Devo fare lo stesso scenario ma non solo su una cella (G1 in questo caso) ma su tutte le celle della colonna G. Ho provato con "Intervallo" ma non ha funzionato.

Private Sub Worksheet_Change (ByVal Target As Range)
Se Range("X2:X100") = "" Allora
Fogli ("MISURAZIONI BASATE SU ATTIVITÀ UE"). Visibile = Falso
Altro
Fogli ("MISURAZIONI BASATE SU ATTIVITÀ UE"). Visibile = Vero
End If
End Sub


Grazie in anticipo
Questo commento è stato fatto dal moderatore sul sito
C'è qualche possibilità che questa sia stata risolta? Mi sono anche imbattuto in questo scenario in cui entra in gioco un intero intervallo invece di una sola cella... Ho usato la stessa codifica con gli stessi risultati.
Questo commento è stato fatto dal moderatore sul sito
Ho fatto 2 fogli di lavoro come segue:
Private Sub Worksheet_Change (ByVal Target As Range)
Se [C20] = "Sì", allora
Fogli("foglio1").Visibile = Vero
Altro
Fogli("foglio1").Visibile = Falso
End If
Se [C22] = "Sì", allora
Fogli("foglio2").Visibile = Vero
Altro
Fogli("foglio2").Visibile = Falso
End If
End Sub
Questo commento è stato fatto dal moderatore sul sito
Molto utile!
Questo commento è stato fatto dal moderatore sul sito
Voglio vedere se puoi aiutarmi con il mio problema. Ho avuto essenzialmente questo codice esatto in un foglio che uso ma con una funzione o quindi la risposta può essere "sì" o "vero". Tuttavia, il foglio che viene nascosto/scoprito a volte si ri-nasconde per ragioni sconosciute. Verrà visualizzato quando digito yes, ma quando vado a usarlo in seguito viene nascosto di nuovo, anche se il valore della cella è ancora sì. Qualche idea sul perché questo potrebbe accadere e/o su come risolverlo?
Codice di riferimento:
Private Sub Worksheet_Change(ByVal Target As Range)'Nasconde/mostra la pagina di calibrazione
Se [B18] = "Sì" o Target.Value = "Vero" Allora
Fogli ("XXX Verification"). Visibile = Vero
Altro
Fogli ("XXX Verification"). Visibile = Falso
End If

Questo commento è stato fatto dal moderatore sul sito
Ciao, ho una cartella di lavoro con più schede con nome collegate a un foglio di indice nella parte anteriore. L'utente può selezionare i fogli che desidera utilizzare selezionando una casella accanto al nome del foglio: vuoto, N/D o Sì (elenco a discesa). C'è un modo per adattare questo codice in modo che il foglio sia visibile se la casella di controllo è vuota o contiene "Sì" ma non è visibile se la casella di controllo contiene "N/D".
Ho provato ma non so abbastanza su VBA per farlo funzionare. Grazie
Questo commento è stato fatto dal moderatore sul sito
Sto cercando di nascondere o mostrare i fogli in base al valore di una cella (Sì/No). I valori sono in una tabella (tblFileContents) e nella colonna D4:D25 e il nome del foglio è in A4:A25 sul foglio . L'ordine degli articoli può essere modificato. Hai un riferimento a un esempio che mi permetterebbe di farlo?
Questo commento è stato fatto dal moderatore sul sito
Ho lo stesso problema e qualcun altro ha fornito una soluzione.
Crea una tabella (formatta come tabella) con 2 colonne, assegna un nome alla colonna di sinistra Fogli da mostrare/nascondere, la colonna di destra dipende da te. Metti tutti i nomi dei fogli nella colonna di sinistra
Quindi selezionare Visualizza codice per questa scheda e immettere Dim modificato come intervallo, c come intervallo, rMTS come intervallo
Dim I As Long
Dim bMostra tutto come booleano

Imposta rMTS = Intervallo("TblShowHide[Segna per mostrare]")
Imposta modificata = Interseca(Target, rMTS)
Se non cambia non è niente allora
bShowAll = Len(rMTS.Cells(1).Valore) > 0
On Error Resume Next
Per i = 2 A rMTS.Rows.Count
Fogli(Range("TblShowHide[Mostra/Nascondi fogli]").Cells(i).Value).Visible = IIf(bShowAll, True, Len(rMTS.Cells(i).Value) > 0)
Avanti
On Error GoTo 0
End If
End Sub


Questo commento è stato fatto dal moderatore sul sito
Lo proverò. Grazie mille!
Questo commento è stato fatto dal moderatore sul sito
Non sono sicuro di cosa devo cambiare ma non ha funzionato per me.
Questo commento è stato fatto dal moderatore sul sito
Ciao Jean,
sì ho un esempio che ho allegato qui. Rinomina il file in example.xlsm (non è compresso, ma è stato necessario rinominarlo per caricarlo)
Nella scheda del menu c'è una tabella con i vari nomi delle schede, crea una x o qualsiasi altro carattere per mostrare la scheda, se rimuovi il carattere, la scheda si nasconde.
Spero possa aiutare
Questo commento è stato fatto dal moderatore sul sito
Questo contiene diversi elementi ma nessun file excel.
Questo commento è stato fatto dal moderatore sul sito
Voglio avere un menu/sommario come primo foglio di lavoro e basato su risposte Sì/No: alcuni fogli di lavoro vengono visualizzati, ad esempio più di 1 diventa visibile.
Sto lottando per visualizzare diversi fogli di lavoro in base al codice sopra.
Posso usare una funzione AND, ad es. Se cella X = "Sì", quindi Rendi visibile il foglio Y e il foglio Z e il foglio K?
Qualsiasi consiglio è molto gradito.
Saluti
Helen
Questo commento è stato fatto dal moderatore sul sito
А я вот не могу понять, как такое сделать в гугл таблицах именно?
Questo commento è stato fatto dal moderatore sul sito
Ciao amico,

Puoi aprire un nuovo foglio Google, aggiungere un nuovo foglio in modo che ci sia un "Foglio1" e un "Foglio2", quindi vai su Strumenti> Editor di script. Nell'editor, incolla quanto segue.

funzione miaFunzione() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName("Foglio1");
var sheet2 = ss.getSheetByName("Foglio2");

var cell1 = sheet1.getRange('B2');

se (cell1.getValue() == 2) {
foglio2.hideFoglio();
}

se (cell1.getValue() == 3) {
foglio2.mostraFoglio();
}
}

Per favore, prova.

Cordiali saluti,
Mandy
Questo commento è stato fatto dal moderatore sul sito
Questo codice funziona alla grande, tuttavia ho 42 variabili per 70 fogli, quindi questo codice diventa molto lungo e smette di funzionare. C'è un modo per rendere questo codice in sezioni per non superare la dimensione del codice che VBA può gestire? O devo dividerli in due excel separati?
Questo commento è stato fatto dal moderatore sul sito
Ciao, Liz
Spiacenti, al momento non c'è un buon modo per risolvere il tuo problema.
Questo commento è stato fatto dal moderatore sul sito
Ho un valore nella cella B1 che se sì mostra il foglio1 ma anche un valore in B2 è se sì mostra il foglio2 ecc. 10 fogli diversi? Grazie
Questo commento è stato fatto dal moderatore sul sito
Ciao Andy,
Per risolvere il tuo problema, applica il codice seguente:
Private Sub Worksheet_Change(ByVal Target As Range)
If [B2] = "Yes" Then
Sheets("Sheet1").Visible = True
Else
Sheets("Sheet1").Visible = False
End If
If [B3] = "Yes" Then
Sheets("Sheet2").Visible = True
Else
Sheets("Sheet2").Visible = False
End If
If [B4] = "Yes" Then
Sheets("Sheet3").Visible = True
Else
Sheets("Sheet3").Visible = False
End If
If [B5] = "Yes" Then
Sheets("Sheet4").Visible = True
Else
Sheets("Sheet4").Visible = False
End If
If [B6] = "Yes" Then
Sheets("Sheet5").Visible = True
Else
Sheets("Sheet5").Visible = False
End If
End Sub

Note:: Nel codice sopra, devi solo copiare più volte gli script seguenti e cambiare il riferimento di cella e il nome del foglio con il tuo.
If [B2] = "Yes" Then
Sheets("Sheet1").Visible = True
Else
Sheets("Sheet1").Visible = False
End If


Per favore, prova, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Sto riscontrando un problema in cui desidero che la scheda venga visualizzata per un intervallo di valori, anziché solo SÌ o NO. Quando provo a ripetere l'istruzione IF nel sub, mi dà un errore e quando provo a elencare più valori nell'istruzione if, ottengo un errore. Qualche idea?

Sembra quasi che io debba usare un'istruzione IF/OR ma non sono sicuro di come funzionerebbe.

Private Sub Worksheet_Change (ByVal Target As Range)
Se [K6] = "VS 1", "VS 2", "VS 3", VS 4" Allora
Fogli("Pagina6").Visibile = True
Altro
Fogli("Pagina6").Visibile = Falso
End If
End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao Margherita,
Per risolvere il tuo problema, applica il codice seguente, dovresti usare O per unirti alle condizioni.
Private Sub Worksheet_Change(ByVal Target As Range)
If [K6] = "VS 1" Or [K6] = "VS 2" Or [K6] = "VS 3" Or [K6] = "VS 4" Then
Sheets("Page6").Visible = True
Else
Sheets("Page6").Visible = False
End If
End Sub

Per favore, prova, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Skyyang: ha funzionato perfettamente. Grazie per la vostra tempestiva risposta!
Questo commento è stato fatto dal moderatore sul sito
Sto provando a usarlo ma viene visualizzato "errore di compilazione - impossibile trovare progetto o libreria" ed evidenziando la cella in cui si trova il menu a discesa Sì/No. Penso che potrebbe essere dovuto al fatto che si tratta di una cella unita, c'è un modo per aggirare questo?
Non ci sono ancora commenti pubblicati qui
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL