Notifications
Clear all

E SE FOSSEM COLUNAS ?

3 Posts
2 Usuários
0 Reactions
538 Visualizações
(@luizhcosta)
Posts: 420
Honorable Member
Topic starter
 

Bom dia,

Novamente aqui para propor uma nova visão. O colega Reinaldo foi brilhante na solução da minha dúvida. Com o código abaixo foi possível ocultar e exibir as linhas de um intervalo que correspondia a um critério, ou seja, quando o valor da célula fosse ZERO a linha seria oculta, e se o valor fosse diferente de ZERO ela seria reexibida.

E SE FOSSEM COLUNAS ?

Agora para aperfeiçoar ainda mais a minha planilha, imaginei a situação: Além de possibilitar ocultar as linhas, pensei em ocultar também as coluna da mesma forma. Daí a pergunta E SE FOSSEM COLUNAS, seria possível adaptar o código das linhas ?

Desde já agradeço a todos!

Private Sub Worksheet_Calculate()
For Each cell In Range("AH10:AH200")
If cell.Value = 0 Then 
cell.EntireRow.Hidden = True
Else
cell.EntireRow.Hidden = False
End If
Next
End Sub
 
Postado : 17/12/2014 7:38 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Já tentou

.EntireColumn.Hidden = True

??

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/12/2014 8:00 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Como não citou a qde de colunas, a rotina abaixo ira contar as colunas e fazer a verificação, teste e veja se é isto:

Sub OcultaColunas()
    Dim rng As Range
    Dim i As Integer
    Dim sCol
    
    'Conta a qde de Colunas
    sCol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column

    Set rng = Range(Cells(1, 1), Cells(1, sCol))

    For i = 1 To sCol
    
        sVal = rng.Columns(i).Value
        
        If sVal = 0 Then
            rng.Columns(i).Hidden = True
        Else
            rng.Columns(i).Hidden = False
        
        End If
    
    Next i

End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/12/2014 1:49 pm