Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Ocultar colunas com base em critérios de células
Ocultar colunas com base em critérios de células
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!
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!
Re: Ocultar colunas com base em critérios de células
Alana,
Adicione um módulo, cole o código abaixo, adicione um botão na planilha e chame a rotina.
Abs
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
Re: Ocultar colunas com base em critérios de células
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.
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.
Re: Ocultar colunas com base em critérios de células
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
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
Re: Ocultar colunas com base em critérios de células
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.
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.