Notifications
Clear all

Ocultar coluna com base no valor de uma célula

4 Posts
2 Usuários
0 Reactions
1,605 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá caros colegas,

Estou com uma idéia e queria pedir a ajuda de vocês para implementá-la. A idéia é ocultar algumas das colunas do intervalo B:AF, conforme os valores da célula G10.

Digamos que G10 = à Pagar, entaum ocultaria as colunas (M;N;Q ou por exemplo de P à X - só para ilustrar como posso fazer em um caso ou noutro). Se G10 = à Receber, oculte as colunas (K:M ou K, X,Y,Z).São 6 condições para G10 e para cada condição, eu ocultaria determinadas colunas (grupos sequenciados ou não) diferentes.

E como eu poderia fazer, ainda neste código, para configurar automaticamente a quantidade de colunas q tiver esse relatório, com base nos critérios para G10, em uma página, nas orientações retrato ou paisagem. Digamos que eu tenha como resultado de um critério uma quantidade de até 10 colunas q cabe em uma página em modo retrato. Em outro critério para G10, são mais de 10 colunas e ficaria melhor ajustar em modo paisagem para uma melhor visualização das informações. Ou seja, de cara, eu determino que minha área de impressão é para o intervalo B17:AF5000, por exemplo. Mas qdo os critérios entrarem em ação, irão ocultar as colunas que determinei, irá checar quantas colunas tão visíveis. Se for até 10 ajusta isso em uma página em orientação retrato, se tiver mais de 10 colunas, ajusta as colunas em uma página em modo paisagem.

Se ficar complicado de resolver a config d impressão peço que dêem um trato na ocultação de colunas que será de grande valia.

Conto com a ajuda de todos,

Pedro.

 
Postado : 23/08/2013 7:44 am
(@diego_moreira)
Posts: 7
Active Member
 

Era isso?

    If Range("G10") = "à Pagar" Then
    
        Columns("M:N").Select
            Selection.EntireColumn.Hidden = True
        Columns("Q:Q").Select
            Selection.EntireColumn.Hidden = True
        Columns("K:M").Select
            Selection.EntireColumn.Hidden = False
    
    End If
    
    If Range("G10") = "à Receber" Then
    
        Columns("K:M").Select
            Selection.EntireColumn.Hidden = True
        Columns("M:N").Select
            Selection.EntireColumn.Hidden = False
        Columns("Q:Q").Select
            Selection.EntireColumn.Hidden = False
        
    End If
 
Postado : 23/08/2013 10:45 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Diego, bom dia!

É caso de evento Private Sub em cada uma das planilhas onde desejar fazer esse tipo de alteração né?

Falow!

 
Postado : 24/08/2013 8:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Diego, bom dia novamente!

Ficou assim meu código:

Private Sub ocultarcolunas()

If Range("D5") = "à Pagar" Then

Columns("A:r").Select
Selection.EntireColumn.Hidden = False
Columns("s:x").Select
Selection.EntireColumn.Hidden = True
End If

If Range("D5") = "à Receber" Then

Columns("A:r").Select
Selection.EntireColumn.Hidden = False
Columns("s:x").Select
Selection.EntireColumn.Hidden = True

End If

If Range("D5") = "à Pagar x à Receber" Then

Columns("A:u").Select
Selection.EntireColumn.Hidden = False
Columns("v:x").Select
Selection.EntireColumn.Hidden = True

End If

If Range("D5") = "Pagas" Then

Columns("A:u").Select
Selection.EntireColumn.Hidden = False
Columns("v:x").Select
Selection.EntireColumn.Hidden = True
End If

If Range("D5") = "Recebidas" Then

Columns("A:u").Select
Selection.EntireColumn.Hidden = False
Columns("v:x").Select
Selection.EntireColumn.Hidden = True
End If

If Range("D5") = "Pagas x Recebidas" Then

Columns("A:u").Select
Selection.EntireColumn.Hidden = False
Columns("v:x").Select
Selection.EntireColumn.Hidden = True

End If

If Range("D5") = "à Pagar x Pagas" Then

Columns("A:u").Select
Selection.EntireColumn.Hidden = False
Columns("v:x").Select
Selection.EntireColumn.Hidden = True

End If

If Range("D5") = "à Receber x Recebidas" Then

Columns("A:u").Select
Selection.EntireColumn.Hidden = False
Columns("v:x").Select
Selection.EntireColumn.Hidden = True
End If

If Range("D5") = "à Pagar/Pagas x à Receber/Recebidas" Then

Columns("A:u").Select
Selection.EntireColumn.Hidden = False
Columns("v:x").Select
Selection.EntireColumn.Hidden = True
End If

End Sub

Gostaria de saber como eu faria de acordo com esse código, como eu poderia configurar automaticamente em modo retrato ou paisagem conforme critérios. Retrato se D5 for "à Pagar" ou "à Receber" ou "à Pagar x à Receber". Nas demais condições ficaria configurado em modo paisagem?

 
Postado : 24/08/2013 9:08 am