Página 1 de 1

Ocultar colunas automaticamente com uma condicional

Enviado: 07 Jan 2016 às 18:57
por manxonildo
Boa tarde a todos,

Tenho uma planilha muito grande de registros de transações. As vezes preciso olhar só as de um determinado ano.

Criei uma celula com validação de dados no topo da planilha para escolher o ano. Duas linhas abaixo, coloquei a formula ANO na data da transação. A data fica mais pra baixo, usei essa formula apenas para identificar o ano e usar como filtro (vou ocultar essa linha depois), como na imagem em anexo:

Imagem

Gostaria de fazer um macro que só deixasse as colunas que tivessem nessa linha o ano escolhido na célula C2 e ocultasse todo o resto. Tentei até fazer com meu médio conhecimento de VBA, mas não consegui. Alguém pode me ajudar?

Muito obrigado!

Re: Ocultar colunas automaticamente com uma condicional

Enviado: 08 Jan 2016 às 11:19
por daniexcel
Fiz a macro e comentei todas as linhas
Neste caso, considerei que os valores referentes a ANO, estão dispostos na linha 2 da sua planilha. O valor de consulta é o inserido na célula A1.

Espero ter ajudado
Código: Selecionar todos
Sub Oculta_colunaAno()
' Macro desenvolvida pelo usuario daniexcel

' A macro analisa a linha 2... ou seja, os valores devem estar na linha 2


 Range("a1").Select
' S é a sua célula de consulta. O valor buscado nas colunas é o da célula A1

 s = [a1].Value
 
' insira o total de colunas a serem consultadas
' a analise começa na coluna B (2) e vai até a coluna correspondente ao numero 50 (ax). Voce pode alterar de acordo com sua necessidade
 For i = 2 To 50
 ' T determina a linha a ser consultada. Neste caso, utilizamos a linha 2. Se desejar alterar  a linha, favor alterar abaixo
 
 t = Cells(2, i)
 
 ' quando encontra uma célula em branco na linha 2, o loop encerra automaticamente, pois a macro entende que a busca acabou
 
 If t = 0 Then Exit For
 t1 = Val(t)
 
 ' Para cada célula com o valor do ano desejado, exibe uma mensagem de alerta. Se preferir sem, basta deletar a linha abaixo
 MsgBox t1
 
 ' aplica a regra para ocultar as colunas da célula A1
 If t1 <> s Then
 Columns(i).Hidden = True
 Else
 Columns(i).Hidden = False
 End If

 Next i
 End Sub