Mauro,
Pediria que relesse meu post inicial e procurasse comparar com tudo que foi dito até aqui. Queria saber o que ficou incompreensível para que possamos chegar a uma conclusão, mesmo que depois essa conclusão seja que minha dúvida não tem solução.
A SÍNTESE: " Ocultar Linha e Coluna via VBA com condição "
LINHA E COLUNA "...Existe um intervalo de linhas e colunas, no caso, "A6:Q54" que possuem algum tipo de dado, no caso serão valores...."
CONDIÇÃO (Linha ) " ...No intervalo A5:R5 tem fórmulas que contam quantos valores existem em cada coluna desse intervalo. Esse é o intervalo que deve ser analisado para ocultar e/ou reexibir essas colunas. Quando o resultado da contagem for ZERO, a coluna correspondente deve ser ocultada...."
CONDIÇÃO (Coluna) "...Também existe no intervalo "R6:R54" a mesma fórmula de contagem, porém esta conta quantos valores existem nas linhas do intervalo, da mesma forma que as colunas, caso o resultado da contagem na linha for ZERO, esta deve ser ocultada e/ou reexibida.
Obs: A condição é o valor ZERO. A opção 1 ou 2 não deve ser a condição.
CONDIÇÃO (Linha e Coluna) " Quando o resultado da contagem for ZERO, a coluna correspondente deve ser ocultada..." "... da mesma forma que as colunas, caso o resultado da contagem na linha for ZERO, esta deve ser ocultada e/ou reexibida...."
VBA "...Como a idéiaa é que tal procedimento seja fruto de uma pesquisa, acho que o evento mais adequado seriam o CHANGE, acionado pela alteração de uma célula específica, neste caso a A2...."
Obs: A alteração consiste em mudar o valor da célula, não requer que seja especificado qual valor a célula assumiu depois de alterada. Não requer tipo de dado.
SÍNTESE "...Em resumo, a macro deve ser acionada pela alteração da célula A2, percorrendo a linha 5 e a coluna R buscando pelo valor ZERO e ocultado linhas e colunas correspondentes...."
Veja que tudo foi especificado, só faltou a codificação.
Quanto ao código que postei,"...Abaixo tem um código o qual utilizo bastante. Você vai perceber que ele tem duas funções. A primeira é bloquear todas as células com fórmulas. A outra é percorrer o range ("$BW$1:$BW$150") em busca do ZERO, e caso encontre, oculta a linha. ..."
Ou seja, ele apenas oculta a "linha" e não a coluna. Postei para que visse que não existe a necessidade de digitar um valor para acionar o código, apenas que a célula seja alterada de alguma forma, até mesmo com F2 + ENTER.
Seu código funciona, isso eu falei na minha primeira resposta. Mas ainda não era a resposta que eu pretendia. Agradeço pela ajuda, mas daí que são necessários mais detalhes para se chegar a plenitude da solução.
Eu sempre procuro agradecer pela ajuda que recebo aqui no fórum. O Fernando, TSA, Prudencio, Patropi, você inclusive já me ajudaram com diversos códigos. Vasculho o fórum todos os dias a qualquer hora, sou fascinado pelo excel, tenho mais conhecimento com as fórmulas do que com o VBA e sempre desço ao nível mais pleno de informação daquilo que pretendo. Por isso tudo é que às vezes não dá para aceitar as recomendações ou observações de falta de ordem, critério e lógica dos posts. Eu também tenho postado algumas ajudas quando o assunto são fórmulas, funções ou formatações. Eu sei o que é ter que entender aquilo que o usuário quer e não sabe como como explicar, paciência.
Como disse no início, reveja meu post, compare e veja se é possível uma solução daquilo que foi exposto.
Obrigado.
Postado : 22/05/2016 5:10 pm