Notifications
Clear all

ocultar colunas com condicional

3 Posts
2 Usuários
0 Reactions
1,150 Visualizações
(@juliowd)
Posts: 0
New Member
Topic starter
 

Olá. Já busquei bastante fontes e nenhuma me ajudou. Por isso recorro aos amigos.
Tenho essa macro:

Sub esconder_coluna()

'ocultar as linhas que não interessam

For coluna = 1000 To 2 Step -1
If ThisWorkbook.ActiveSheet.Range(coluna & 10) = "ocultar" Then
ThisWorkbook.ActiveSheet.Columns(coluna).Hidden = True
End If
Next coluna


End Sub

e desejo ocultar todas as colunas, que na linha 10 contiverem o texto "ocultar".
Onde estou errando?
Obrigado!

 
Postado : 26/08/2015 12:41 pm
(@juliowd)
Posts: 0
New Member
Topic starter
 

Resolvido!!

'ocultar as colunas que não interessam

For coluna = 400 To 2 Step -1
If ThisWorkbook.ActiveSheet.Cells(10, coluna) = "ocultar" Then
ThisWorkbook.ActiveSheet.Columns(coluna).Hidden = True
End If
Next coluna

Um abraço!

 
Postado : 27/08/2015 11:28 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

julio, apesar de ter dado como resolvido, vejo que em sua rotina você tem a qde das colunas já definidas "For coluna = 400", então se sempre for esta qde tudo bem, mas se tiver somente 10 colunas a instrução irá executar 390 verificações em colunas desnecessárias, então sugiro a rotina abaixo onde contamos a qde de colunas e apos a verificação ocultamos conforme o criterio, nela tambem tem condição para reexibir.

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

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

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

End Sub

Só uma sugestão a mais.

[]s

 
Postado : 27/08/2015 11:56 am