Página 1 de 1

Macro CONDICIONAL para ocultar ou reexibir linhas

Enviado: 16 Nov 2017 às 16:23
por Waltricke
Boa tarde mestres do Excel! Preciso da sua sabedoria!

Estou anexando uma planilha apenas como exemplo para entenderem o que estou querendo. Depois de solucionado o mistério, vou saber fazer a aplicação na planilha que estou montando.

Preciso de uma macro para ocultar uma linha inteira quando uma determinada célula resultar em 0 e, quando essa mesma célula resultar em 1, então que a linha seja reexibida.

Esta macro precisa funcionar bem, então peço encarecidamente sua ajuda. Por favor, façam isso na planilha anexa e devolvam com a solução.

E se possível, uma breve explicação de como fizeram, pois o meu objetivo não é ficar pedindo pros outros fazerem e sim aprender com vocês.

Certamente isso é mamão com açúcar para os grandes mestres. Então, ficarei no aguardo.

Grande abraço a todos!

Re: Macro CONDICIONAL para ocultar ou reexibir linhas

Enviado: 16 Nov 2017 às 16:39
por gfranco
Boa tarde.
Seria +- isso que deseja?

Re: Macro CONDICIONAL para ocultar ou reexibir linhas

Enviado: 16 Nov 2017 às 16:57
por Waltricke
gfranco, não é mais ou menos isso é EXATAMENTE isso! Muito obrigado mestre!

Mas preciso entender qual a lógica usada, pois eu copiei o código para a planilha onde realmente pretendo aplicar esse conceito e fiz as devidas alterações, mas não funcionou... Pode me ajudar?

Re: Macro CONDICIONAL para ocultar ou reexibir linhas

Enviado: 16 Nov 2017 às 17:17
por gfranco
Boa tarde.
Segue o código comentado...
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vln As Long
If Not Intersect(Target, Range("c2:c5")) Is Nothing Then 'verifica se a célula modificada está na faixa de "C2:C5"

        If Target.Count = 1 Then 'verifica se apenas uma célula foi modificada
         vln = Target.Row ' define a variável vln como o valor da linha da célula modificada
          vln = vln + 6 'como queremos ocultar/excluir 6 linhas abaixo da modificada... acrescento 6
                If Target.Value = 0 Then 'se o valor da célula alterada for igual a zero então....
                              
                Rows(vln).EntireRow.Hidden = True 'oculta a linha
                
                ElseIf Target.Value = 1 Then 'ou se o valor da célula alterada for igual a um então....
                Rows(vln).EntireRow.Hidden = False 'exibe a linha
                End If
                
                End If
        
        
        End If

End Sub
Vc poderá vê-lo... clicando com o botão direito no mouse no nome da planilha e selecionando "exibir código"

Resposta útil? clique em obrigado...

Re: Macro CONDICIONAL para ocultar ou reexibir linhas

Enviado: 16 Nov 2017 às 17:50
por Waltricke
gfranco, até aqui tudo perfeito maigo! Obrigado pela tua ajuda e paciência, mas vou acrescentar mais uma pergunta:

Pegando essa mesma planilha que tu me devolveu com o código. no intervalo C2:C5, ao invés de colocar 0 e 1 eu pretendo colocar uma fórmula que resulte em 0 ou 1, dependendo do que estiver em uma outra célula...

Utilizando o código que tu me passou e, feitas as devidas alterações, passa a NÃO funcionar muito corretamento, pois no intervalo em questão (C2 a C5) não contém 0 ou 1 e sim fórmulas..

Pode me ajudar a resolver? Creio que alguma pequena modificação no código já resolva.

Já deixo o meu muito obrigado!

Macro CONDICIONAL para ocultar ou reexibir linhas

Enviado: 16 Nov 2017 às 18:17
por gfranco
Boa tarde.
sugiro então postar um modelo mais próximo do real cenário em que a macro deve atuar.
Lembre-se: a posição das colunas/linhas à serem alteradas e as condições em que essas alterações ocorrem influenciam diretamente na estruturação do código.

Re: Macro CONDICIONAL para ocultar ou reexibir linhas

Enviado: 16 Nov 2017 às 18:42
por Waltricke
gfranco, OK estou anexando a planilha real. Ela está bem mais elaborada do que esta que estou postando. Estou postando uma versão simplificada eliminando informações sigilosas e desnecessárias para este tópico.

O intervalo do qual estamos falando é das células F4 a F7. Perceba que nestas células não há 0 ou 1, mas sim fórmulas que resultam em 0 ou 1.

AS linhas que eu quero ocultar ou exibir são: 13 a 16 dependendo do que estiver nas células F4 a F7

F4 para linha 13
F5 para linha 14
F6 para linha 15
F7 para linha 16

É isso aí amigo! Conto com sua ajuda. Muito obrigado

Re: Macro CONDICIONAL para ocultar ou reexibir linhas

Enviado: 17 Nov 2017 às 14:23
por Waltricke
Boa tarde amigos!

Alguém conseguiu uma solução para esta questão conforme a última resposta que postei com planilha anexa?

Re: Macro CONDICIONAL para ocultar ou reexibir linhas

Enviado: 18 Nov 2017 às 07:44
por gfranco
Bom dia.
Veja se desta forma lhe atende.

Re: Macro CONDICIONAL para ocultar ou reexibir linhas

Enviado: 18 Nov 2017 às 12:23
por Waltricke
Muito obrigado gfranco! Tu é o cara!

Espero poder contar com sua ajuda futuramente. Sempre tenho dúvidas aqui e sempre buscando aprendizado.

Grande abraço!

Estou encerrando o tópico.