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

Como ocultar ou reexibir uma planilha específica com base no valor da célula em outra planilha?

Existe algum método para ocultar ou reexibir uma guia de planilha específica com base no conteúdo de uma célula em outra planilha? Por exemplo, ao inserir o texto “Sim” na célula G1 da Folha2, desejo que a Folha1 fique oculta e, quando inserir “Não”, a Folha1 seja exibida imediatamente. Como posso resolver esse problema no Excel?

Ocultar ou exibir uma guia específica da planilha com base no valor da célula com o código VBA


seta azul bolha direita Ocultar ou exibir uma guia específica da planilha com base no valor da célula com o código VBA

Para ocultar ou exibir uma guia de planilha específica com base em um valor de célula em outra planilha, o seguinte código VBA pode lhe fazer um favor, faça o seguinte:

1. Vá para a planilha que contém o valor da célula em que deseja ocultar outra planilha.

2. Clique com o botão direito na guia da planilha e selecione Ver código, no estalou para fora Microsoft Visual Basic para Aplicações janela, copie e cole o seguinte código na janela do módulo em branco, veja a captura de tela:

Código VBA: oculte ou oculte uma guia de planilha com base no valor da célula:

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

doc ocultar guia com base no valor da célula 1

NOTA No código acima, G1 e Sim são a célula e o conteúdo da célula em que você deseja se basear, e Sheet1 é a página específica que você deseja ocultar ou exibir. Você pode alterá-los conforme sua necessidade.

3. Em seguida, salve e feche este código, ao inserir “Não” ou outro texto na célula G1, a Planilha1 ficará oculta, mas se você inserir “Sim” na célula, a Planilha1 será exibida imediatamente, veja as capturas de tela:

doc ocultar guia com base no valor da célula 2
1
doc ocultar guia com base no valor da célula 3

 


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2021 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Recursos completos de avaliação gratuita de 30 dias. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório

 

Comentários (23)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
Olá
Obrigado pela dica. Preciso fazer o mesmo cenário mas não em apenas uma célula (G1 neste caso) mas em todas as células da coluna G. Já tentei com "Range" mas não funcionou.

Private Sub Worksheet_Change (ByVal Target As Range)
If Range("X2:X100") = "" Então
Sheets("MEDIDAS COM BASE EM TAREFAS DA UE").Visible = False
Outro
Sheets("MEDIDAS BASEADAS EM TAREFAS DA UE").Visível = Verdadeiro
Se acabar
End Sub


Obrigado antecipadamente
Este comentário foi feito pelo moderador no site
Alguma chance de isso ter sido respondido? Também estou me deparando com esse cenário em que todo um intervalo entra em jogo em vez de apenas uma célula... Usei essa mesma codificação com os mesmos resultados.
Este comentário foi feito pelo moderador no site
Fiz 2 planilhas da seguinte forma:
Private Sub Worksheet_Change (ByVal Target As Range)
Se [C20] = "Sim" Então
Sheets("sheet1").Visible = True
Outro
Sheets("sheet1").Visible = False
Se acabar
Se [C22] = "Sim" Então
Sheets("sheet2").Visible = True
Outro
Sheets("sheet2").Visible = False
Se acabar
End Sub
Este comentário foi feito pelo moderador no site
Muito útil!
Este comentário foi feito pelo moderador no site
Quero ver se você pode ajudar no meu problema. Eu tive essencialmente esse código exato em uma planilha que uso, mas com uma função ou para que a resposta possa ser "sim" ou "verdadeiro". No entanto, a planilha que está sendo ocultada/exibida às vezes se oculta novamente por motivos desconhecidos. Ele será exibido quando eu digitar sim, mas quando eu for usá-lo mais tarde, ele ficará oculto novamente, mesmo que o valor da célula ainda seja sim. Alguma idéia de por que isso pode estar acontecendo e / ou como corrigi-lo?
Código para referência:
Private Sub Worksheet_Change(ByVal Target As Range)'Oculta/reexibe a página de calibração
Se [B18] = "Sim" Ou Target.Value = "True" Então
Planilhas("Verificação XXX").Visível = Verdadeiro
Outro
Sheets("Verificação XXX").Visible = False
Se acabar

Este comentário foi feito pelo moderador no site
Oi tenho uma pasta de trabalho com várias guias nomeadas vinculadas a uma folha de índice na frente. O usuário pode selecionar as planilhas que deseja usar marcando uma caixa ao lado do nome da planilha - em branco, N/A ou Sim (lista suspensa). Existe uma maneira de adaptar este código para que a planilha fique visível se a caixa de seleção estiver em branco ou contiver "Sim", mas não visível se a caixa de seleção contiver "N/A".
Eu tentei, mas não sei o suficiente sobre VBA para fazê-lo funcionar. Obrigado
Este comentário foi feito pelo moderador no site
Estou procurando ocultar ou exibir planilhas com base em um valor de célula (Sim/Não). Os valores estão em uma tabela (tblFileContents) e coluna D4:D25 e o nome da planilha está em A4:A25 na planilha . A ordem dos itens pode ser alterada. Você tem uma referência a um exemplo que me permita fazer isso?
Este comentário foi feito pelo moderador no site
Eu tenho o mesmo problema e alguém forneceu uma solução.
Faça uma tabela (formatar como tabela) com 2 colunas, nomeie a coluna da esquerda como Folhas para mostrar/ocultar, a coluna da direita fica a seu critério.Coloque todos os nomes das planilhas na coluna da esquerda
Em seguida, selecione View Code para esta guia e insira Dim Changed As Range, c As Range, rMTS As Range
Dim i tanto tempo
Dim bMostrar tudo como booleano

Set rMTS = Range("TblShowHide[Mark to Show]")
Conjunto alterado = Intersect(Alvo, rMTS)
Se Não Mudar Não É Nada Então
bShowAll = Len(rMTS.Cells(1).Value) > 0
On Error Resume Next
Para i = 2 Para rMTS.Rows.Count
Sheets(Range("TblShowHide[Show/Hide Sheets]").Cells(i).Value).Visible = IIf(bShowAll, True, Len(rMTS.Cells(i).Value) > 0)
Proximo eu
Em erro GoTo 0
Se acabar
End Sub


Este comentário foi feito pelo moderador no site
Vou tentar. Muito obrigado!
Este comentário foi feito pelo moderador no site
Não tenho certeza do que preciso mudar, mas não funcionou para mim.
Este comentário foi feito pelo moderador no site
Oi Jean,
sim, eu tenho um exemplo que anexei aqui. Renomeie o arquivo para example.xlsm (não está compactado, mas teve que renomear para fazer o upload)
Na aba do menu há uma tabela com os vários nomes das abas, faça um x ou qualquer outro caractere para mostrar a aba, se você remover o caractere, a aba fica oculta.
espero que ajude
Este comentário foi feito pelo moderador no site
Este contém vários itens, mas nenhum arquivo do Excel.
Este comentário foi feito pelo moderador no site
Eu quero ter um Menu/Índice como minha primeira planilha e com base em respostas Sim/Não - certas planilhas aparecem, ou seja, mais de 1 se torna visível.
Estou lutando para que várias planilhas apareçam com base no código acima.
Posso usar uma função AND, por exemplo, Se a célula X = "Sim", Tornar a folha Y visível e a folha Z e a folha K?
Qualquer conselho muito bem vindo.
Saudações
Helen
Este comentário foi feito pelo moderador no site
А я вот не могу понять, как такое сделать в гугл таблицах именно?
Este comentário foi feito pelo moderador no site
Olá amigo,

Você pode abrir uma nova planilha do Google, adicionar uma nova planilha para que haja uma "Planilha1" e uma "Planilha2" e vá para Ferramentas > Editor de scripts. No editor, cole o seguinte.

função minhaFunção() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var folha1 = ss.getSheetByName("Planilha1");
var folha2 = ss.getSheetByName("Planilha2");

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

if (cell1.getValue() == 2) {
folha2.hideSheet();
}

if (cell1.getValue() == 3) {
folha2.showPlanilha();
}
}

Por favor, tente.

Atenciosamente,
Mandy
Este comentário foi feito pelo moderador no site
Este código funciona muito bem, porém eu tenho 42 variáveis ​​para 70 planilhas então esse código fica muito longo e para de funcionar. Existe uma maneira de fazer esse código em seções para não exceder o tamanho do código que o VBA pode manipular? Ou eu tenho que dividi-los em dois excels separados?
Este comentário foi feito pelo moderador no site
Olá, Liz
Desculpe, no momento, não há uma boa maneira de resolver seu problema.
Este comentário foi feito pelo moderador no site
Eu tenho um valor na célula B1 que, se sim, exibe sheet1, mas também um valor em B2, se sim, exibe Sheet2 etc etc. 10 folhas diferentes? obrigado
Este comentário foi feito pelo moderador no site
Olá, Andy,
Para resolver seu problema, aplique o código abaixo:
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

Nota: No código acima, você só precisa copiar os scripts abaixo várias vezes e alterar a referência da célula e o nome da planilha para o seu.
If [B2] = "Yes" Then
Sheets("Sheet1").Visible = True
Else
Sheets("Sheet1").Visible = False
End If


Por favor, tente, espero que possa ajudá-lo!
Este comentário foi feito pelo moderador no site
Estou tendo um problema em que desejo que a guia mostre um intervalo de valores, em vez de apenas SIM ou NÃO. Quando tento repetir a instrução IF no sub, ocorre um erro e quando tento listar vários valores na instrução if, recebo um erro. Alguma ideia?

Quase parece que preciso usar uma instrução IF/OR, mas não tenho certeza de como isso funcionaria.

Private Sub Worksheet_Change (ByVal Target As Range)
Se [K6] = "VS 1", "VS 2", "VS 3", VS 4" Então
Sheets("Página6").Visível = Verdadeiro
Outro
Sheets("Página6").Visível = Falso
Se acabar
End Sub
Este comentário foi feito pelo moderador no site
Olá Margarida,
Para resolver seu problema, aplique o código abaixo, você deve usar Or para juntar as condições.
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

Por favor, tente, espero que possa ajudá-lo!
Este comentário foi feito pelo moderador no site
Skyyang - isso funcionou perfeitamente. Obrigado pela sua resposta imediata!
Este comentário foi feito pelo moderador no site
Estou tentando usar isso, mas está apresentando "erro de compilação - não é possível encontrar projeto ou biblioteca" e destacando a célula onde o menu suspenso Sim/Não está situado. Eu acho que pode ser devido a esta ser uma célula mesclada, existe alguma maneira de contornar isso?
Não há comentários postados aqui ainda
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0   Personagens
Locais sugeridos

Siga-nos

Copyright © 2009 - www.extendoffice.com. | Todos os direitos reservados. Distribuído por ExtendOffice. | | | Mapa do site
Microsoft e o logotipo do Office são marcas comerciais ou marcas registradas da Microsoft Corporation nos Estados Unidos e / ou em outros países.
Protegido por Sectigo SSL