ATENÇÃO NOVOS USUÁRIOS

Se registrou recentemente? Seu cadastro será avaliado e mendiante aprovação, a conta será ativada e você poderá usufruir do fórum. O tempo de avaliação gira em torno de 24 a 48 horas.

Esqueceu sua senha?

Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

Ocultar colunas com base em critérios de células

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Alana
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Sex Fev 24, 2017 12:48 pm

Ocultar colunas com base em critérios de células

Mensagem por Alana » Qua Mar 01, 2017 2:07 pm

Boa tarde!

Preciso de um código que me ajude a ocultar certas colunas conforme o critério de determinadas células, vou colocar 'botões' que farão, por exemplo:
BOTÃO "ADM" => ocultar as colunas "E até AV" se as células "E10, F10 até AV10" for diferente de "ADM" isto, respectivamente, ou seja, ocultará a coluna "E" se a célula "E10" for diferente de "ADM", ocultará a coluna "F" se a célula "F10" for diferente de "ADM" e assim por diante.
BOTÃO "EXP" => ocultar as colunas "E até AV" se as células "E10, F10 até AV10" for diferente de "EXP" isto, respectivamente, ou seja, ocultará a coluna "E" se a célula "E10" for diferente de "EXP", ocultará a coluna "F" se a célula "F10" for diferente de "EXP" e assim por diante.

Achei um que funciona (abaixo), mas deixa o processo muito demorado, pois fica analisando coluna por coluna...queria saber se existe algo que faça de forma mais rápida a leitura?

EXEMPLO que funciona (mas lento):
Sub Botão_ADM()
'
' Botão_ADM Macro
'
If Range("E10").Value <> "ADM" Then
Columns("E:E").Hidden = True
End If
If Range("F10").Value <> "ADM" Then
Columns("F:F").Hidden = True
End If
If Range("G10").Value <> "ADM" Then
Columns("G:G").Hidden = True
End If
If Range("H10").Value <> "ADM" Then
Columns("H:H").Hidden = True
End If
If Range("I10").Value <> "ADM" Then
Columns("I:I").Hidden = True
End If
If Range("J10").Value <> "ADM" Then
Columns("J:J").Hidden = True
End If
If Range("K10").Value <> "ADM" Then
Columns("K:K").Hidden = True
End If
If Range("L10").Value <> "ADM" Then
Columns("L:L").Hidden = True
End If
If Range("M10").Value <> "ADM" Then
Columns("M:M").Hidden = True
End If
If Range("N10").Value <> "ADM" Then
Columns("N:N").Hidden = True
End If
If Range("O10").Value <> "ADM" Then
Columns("O:O").Hidden = True
End If
If Range("P10").Value <> "ADM" Then
Columns("P:P").Hidden = True
End If
If Range("Q10").Value <> "ADM" Then
Columns("Q:Q").Hidden = True
End If
If Range("R10").Value <> "ADM" Then
Columns("R:R").Hidden = True
End If
If Range("S10").Value <> "ADM" Then
Columns("S:S").Hidden = True
End If
If Range("T10").Value <> "ADM" Then
Columns("T:T").Hidden = True
End If
If Range("U10").Value <> "ADM" Then
Columns("U:U").Hidden = True
End If
If Range("V10").Value <> "ADM" Then
Columns("V:V").Hidden = True
End If
If Range("W10").Value <> "ADM" Then
Columns("W:W").Hidden = True
End If
If Range("X10").Value <> "ADM" Then
Columns("X:X").Hidden = True
End If
If Range("Y10").Value <> "ADM" Then
Columns("Y:Y").Hidden = True
End If
If Range("Z10").Value <> "ADM" Then
Columns("Z:Z").Hidden = True

Agradeço muito se alguém me ajudar!



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


srobles
Jedi
Jedi
Mensagens: 793
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Ocultar colunas com base em critérios de células

Mensagem por srobles » Qua Mar 01, 2017 3:04 pm

Alana,

Adicione um módulo, cole o código abaixo, adicione um botão na planilha e chame a rotina.

Código: Selecionar todos

Sub ocultaColunas()
    For coluna = 5 To 48 'E até AV
        'Se o valor da linha 10 na coluna for igual a ADM
        If Cells(10, coluna) <> "ADM" Then
            'Ocultamos a coluna
            Columns(coluna).Hidden = True
        Else
            'Senão, a exibimos
            Columns(coluna).Hidden = False
        End If
    Next
End Sub
Abs


Espero ter ajudado.

Abs.

Saulo Robles


Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond


Se suas dúvidas foram esclarecidas, acrescente ao lado do título o texto [RESOLVIDO].

Alana
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Sex Fev 24, 2017 12:48 pm

Re: Ocultar colunas com base em critérios de células

Mensagem por Alana » Qua Mar 01, 2017 3:50 pm

Obrigada pela ajuda!

Este código funcionou da mesma forma que o outro, só que deixando mais 'clean' o código, já ajuda bastante para montar os demais, mas acho que o problema da lentidão vai ter de ficar assim mesmo, pois são várias colunas, e tem de ler célula a célula, acho que essa parte realmente vou ter que encarar e esperar fazer a leitura após o click/execução.



srobles
Jedi
Jedi
Mensagens: 793
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Ocultar colunas com base em critérios de células

Mensagem por srobles » Qua Mar 01, 2017 4:08 pm

Alana,

Aqui em meus testes, o código foi executado e concluído em +/- 1 segundo.
Temos de levar em consideração a configuração do computador, o tamanho da planilha em questão...enfim, temos "n" variáveis á considerar para definirmos o que causa essa lentidão na execução destes simples códigos.

Quaisquer dúvidas, estamos á disposição.

Abs


Espero ter ajudado.

Abs.

Saulo Robles


Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond


Se suas dúvidas foram esclarecidas, acrescente ao lado do título o texto [RESOLVIDO].

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Celmo
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Ter Jan 14, 2020 9:32 am

Re: Ocultar colunas com base em critérios de células

Mensagem por Celmo » Qua Jan 15, 2020 7:26 am

Preciso conseguir um código VBA para uma macro
com a finalidade de ocultar/reexibir colunas com valores igual a zero numa
faixa de células de uma linha.

Na verdade eu preciso ocultar as colunas H a EU com valores iguais a zero
nas células H a EU da linha 4.
Se alguém tiver um código VBA similar, favor me avisar.

Contando com a colaboração, agradeco antecipadamente.



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder