Ir para conteúdo
Fórum Script Brasil

Jahezer Franciz Capelari

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por Jahezer Franciz Capelari

  1. Ola rafra, veja se o código abaixo te ajuda.

    Estou anexando um GIF que mostra o resultado obtido ao aplicar o código abaixo.
    Dessa forma é possível fazer com que as linhas sejam exibidas ou não, de acordo com o preenchimento em determinada célula que pode ser adequada por intermédio do código.

    O código abaixo deverá ser inserido seguindo os passos abaixo:
    1. Com o Excel aberto,
    2. Pressione Alt+F11
    3. No lado esquerdo estará o Projeto - VBAProject
    4. Abra a pasta Microsoft Excel Objetos
    5. Clique duas vezes em EstaPasta_de_trabalho
    6. Cole o código abaixo
    7. No código defini o nome da guia para reconhecimento com o nome "Ocultar" (altere para o nome da sua guia)
    8. Defini a célula que deve estar preenchida (ou não) na variável vLinhas_ColunaI, caso seja outra célula, altere o range definido.
    9. Se manter esse código, adeque o nome da guia e preencha ou não a célula I7 que o efeito será aplicado conforme o GIF.

    ' vgLoop = Usado para estrutura de repetição.
    Dim vgLoop As Long
    
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        ' vLinhas_ColunaI = Usado para definir quais linhas da coluna I deverão ser verificadas caso ocorra alteração.
        ' vRow            = Usado para varrer todas as linhas do RANGE que será definido na variável vLinhas_ColunaI.
        Dim vLinhas_ColunaI As Range
        Dim vRow As Variant
        
        Set vLinhas_ColunaI = Range("I7")
        
        ' Valida apenas se ocorreu alteração no range acima.
        If Not Intersect(Range(Target.AddressLocal), vLinhas_ColunaI) Is Nothing Then
            ' Varre todas as linhas do range.
            For Each vRow In vLinhas_ColunaI.Rows
                ' Caso alguma linha contenha informação, então exibe as linhas.
                If vRow.Value2 <> "" And IsNull(vRow.Value2) = False Then
                    Call fsOcultarLinhas("Ocultar", True)
                    ' Finaliza execução da SUB.
                    Exit Sub
                End If
            Next
            ' Se chegou até aqui, então na estrutura FOR não foi encontrado nenhum valor preenchido. Logo, oculta as linhas.
            Call fsOcultarLinhas("Ocultar")
        End If
    End Sub
    
    Sub fsOcultarLinhas(ByVal vpNomeGuia As String, Optional ByVal vpExibirLinhas As Boolean = False)
        ' vpNomeGuia     = Nome da guia que terá as células ocultas.
        ' vpExibirLinhas = Define se deve ser exibido ou não as linhas caso seja necessário (TRUE se sim, FALSE se não).
        '                  Variável OPCIONAL com valor padrão = FALSE.
        
        ' Seleciona a guia.
        Sheets(vpNomeGuia).Select
        ' Seleciona as linhas
        Rows("8:28").Select
        ' Define se oculta ou não as linhas de acordo com o vpExibirLinhas.
        If vpExibirLinhas = True Then
            Selection.EntireRow.Hidden = False
        Else
            Selection.EntireRow.Hidden = True
        End If
    End Sub

     

    OcultarLinhas_2x.gif

×
×
  • Criar Novo...