Ir ao conteúdo
  • Cadastre-se
gibbsonx

Excel Ocultar linha baseado no valor de uma célula num intervalo de linhas

Recommended Posts

Boa tarde a todos.

 

Mais uma vez recorro aos amigos para uma ajuda sobre VB.

Tenho uma planilha onde preciso ocultar uma determinada linha, baseado no valor "SIM" ou "Não" de uma das células contidas num intervalo de colunas.

 

A planilha anexo é um exemplo do que preciso. Nela consta os valores em uma célula mesclada das colunas B,C, linhas 1 a 3.

Quando selecionar o valor "SIM" nas células, a linha 5 deve ficar visível.

Quando selecionar "NÃO" em uma das células, a linha 5 deve ficar oculta.

 

Desde já agradeço muito a ajuda de sempre.

EXEMPLO.xlsx

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Experimente. Cole o código abaixo no módulo da planilha Plan1.

 

Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, [B1:C3]) Is Nothing Then Exit Sub
 Rows(5).Hidden = Application.CountIf([B1:B3], "NÃO")
End Sub

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
14 horas atrás, osvaldomp disse:

 

Experimente. Cole o código abaixo no módulo da planilha Plan1.

 


Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, [B1:C3]) Is Nothing Then Exit Sub
 Rows(5).Hidden = Application.CountIf([B1:B3], "NÃO")
End Sub

 

Caro @osvaldomp

Muito obrigado pela ajuda.

 

O código funciona parcialmente.

Por exemplo, quando seleciono SIM ou Não na célula B1, a linha 5 oculta e exibe, porém, quando combino SIM e NÃO nas outras células simultaneamente, a função na funciona.

Preciso que, no intervalo da coluna, quando alguma das células for selecionado SIM, a linha 5 apareça.

Por exemplo:

B1 = NÃO  

B2 = SIM    

B3 = NÃO

Linha 5 = EXIBE

 

B1 = SIM

B2 = SIM    

B3 = NÃO

Linha 5 = EXIBE

 

B1 = NÃO

B2 = NÃO   

B3 = NÃO

Linha 5 = OCULTA

 

E assim por diante em todas as combinações...

 

Obrigado.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
17 horas atrás, gibbsonx disse:

O código funciona parcialmente.

Não! O código funciona integralmente com base nos critérios que você colocou antes.

Antes você colocou:

Quando selecionar o valor "SIM" nas células, a linha 5 deve ficar visível. ~~~> critério, 3 x SIM ~~~> visível

Quando selecionar "NÃO" em uma das células, a linha 5 deve ficar oculta. ~~~> critério, 1 x NÃO ~~~> oculta

 

E no último post você colocou:

Preciso que, no intervalo da coluna, quando alguma das células for selecionado SIM, a linha 5 apareça. ~~~> critério, 1 x SIM ~~~> visível

 

Então, para exibir, no critério anterior você queria 3 x SIM e agora você quer 1 x SIM. O código funciona corretamente, você é que se enrolou para explicar o que quer.

 

Para exibir a linha com critério 1 x SIM, e ocultar com critério 3 x NÃO, acrescente a parte em vermelho ao código conforme abaixo.

Rows(5).Hidden = Application.CountIf([B1:B3], "NÃO") = 3

 

dica - para responder clique em Responder, localizado abaixo da última postagem. Só clique em Citar se necessário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro @osvaldomp

Peço desculpas por ter me expressado mal.

Mais uma vez, muito obrigado pela ajuda.

Funcionou perfeitamente.

 

Faltou eu mencionar mais um critério.

Preciso que a linha 5 fique oculta também se a célula estiver vazia. É possível?

Compartilhar este post


Link para o post
Compartilhar em outros sites
28 minutos atrás, gibbsonx disse:

Preciso que a linha 5 fique oculta também se a célula estiver vazia.

Qual célula ?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Podem ser várias combinações.

Exemplo:

B1 VAZIO

B2 VAZIO

B3 VAZIO

LINHA 5 OCULTA

 

B1 NÃO

B2 VAZIO

B3 NÃO

LINHA 5 OCULTA

 

B1 VAZIO

B2 SIM

B3 NÃO

LINHA 5 EXIBE (devido a linha B2 ser SIM)

 

Ou seja, se todas as células do intervalo B1:B3 estiverem VAZIAS ou selecionado "NÃO", ou uma combinação de células do intervalo B1:B3 conterem células "NÃO" e VAZIAS, a linha 5 deve ficar oculta.

Se pelo menos 1 das linhas do intervalo B1:B3 for selecionado "SIM", independente das demais serem "NÃO" ou VAZIAS, a linha 5 deve ser exibida.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cole a linha abaixo no lugar da anterior.

Rows(5).Hidden = Evaluate("Sum(COUNTIF(B1:B3,{""NÃO"",""""}))") = 3

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×