Notifications
Clear all

verificador ocultar coluna

4 Posts
2 Usuários
0 Reactions
1,206 Visualizações
(@gabrielluz)
Posts: 12
Active Member
Topic starter
 

Bom dia pessoal, estou tendo dificuldade em "melhorar" um código...
Na planilha tenho uma formula que pode dar 0 ou > 0.

Tenho o seguinte código:
If Range("h2").Value = "0" Then
Columns("H:H").Select
Selection.EntireColumn.Hidden = False
Else
Columns("H:H").Select
Selection.EntireColumn.Hidden = True
End If

O problema é o seguinte, esse código acima tem o comportamento correto e funciona, ele vai ocultar caso no range("h2") o valor seja 0, e caso não, ele vai exibir a coluna.
Mas o meu problema é que preciso que essa verificação, e esse ocultamento(ou exibimento) aconteça das colunas H até CM.

Os ranges sempre serão: H2, I2, J2, K2, L2, M2 ..... até CM2
E as colunas sempre serão respectivos aos ranges: H2(ocultar ou exibir coluna H), I2 (Ocultar ou exibir coluna I), J2 (Ocultar ou exibir coluna J)... até CM

E se eu utilizar o mesmo código repetidas vezes até o CM2, alem de ser muito trabalhoso acredito que não seja a melhor forma, pois vai ficar lento e preciso de um código que faça isso rapidamente.

Agradeço imensamente quem puder me ajudar, pois precisava disso para um serviço ainda hoje. Desculpem qualquer erro de português ou falta de informação, estarei aqui ao longo do dia.

 
Postado : 10/12/2019 8:27 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Bom dia, Gabriel!

Clique com o botão direito na guia ("orelha") da planilha q. vc quer que isso aconteça e escolha a opção "Exibir Código". Copie e cole o seguinte código:

Private Sub Worksheet_Calculate()
  Dim Cél As Range
  For Each Cél In Me.Range("H2:CM2")
    Cél.EntireColumn.Hidden = (Cél.Value = 0)
  Next Cél
  Set Cél = Nothing
End Sub

 
Postado : 10/12/2019 9:57 am
(@gabrielluz)
Posts: 12
Active Member
Topic starter
 

Muito obrigado meu amigo, deu absolutamente certo, aproveitando o gancho, se possivel é claro, me surgiu outro problema:
Tenho 120 campos de formulario
Nomeados q1, q2, q3... até q120
Preciso que em todos esses campos, caso haja um ponto (.) seja substituido por uma virgula.

Pode ser uma mascará (que seja fácil aplicar em todos os campos) ou algum código automatizado que me permita esse feito na hora de clicar no botão "Lançar".

Caso não saiba, Já me ajudou muito mesmo!!
Fica aqui a minha gratidão, meu amigo, obrigado!

(PS: darei a sua resposta anterior como certa)

 
Postado : 10/12/2019 10:14 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Gabriel, como são assuntos diferentes, pra manter o fórum organizado, crie novo tópico. Também seria importante ter esse seu modelo pra testar, senão teremos que criar do zero. Elimine informações confidenciais e disponibilize-nos num drive na nuvem, por gentileza.
De qualquer forma, só poderei ver isso à noite...

 
Postado : 10/12/2019 10:35 am