Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#28213
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!
Você não está autorizado a ver ou baixar esse anexo.
#28215
Boa tarde.
Seria +- isso que deseja?
Você não está autorizado a ver ou baixar esse anexo.
#28217
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?
#28219
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...
#28223
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!
#28224
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.
#28225
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
Você não está autorizado a ver ou baixar esse anexo.
#28257
Bom dia.
Veja se desta forma lhe atende.
Você não está autorizado a ver ou baixar esse anexo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord