VBA – Ocultando linhas em branco em uma lista no Excel

Fruto da necessidade de alguns colegas do Fórum, coloco aqui uma macro que possibilita ocultar as linhas de uma lista ou tabela no Excel. O efeito pode muito bem ser conseguido através do recurso AutoFiltro, mas, como relatado, algumas vezes usuários menos avançados não conhecem a funcionalidade para produzir o efeito determinado.

Para alguns familiarizados, a rotina é uma adaptação da macro que também existe aqui no blog para excluir linhas de acordo com um critério:

Function OcultaLinhasPorCriterio(ByVal nomePlanilha As String, ByVal linhaInicial As Integer, ByVal linhaFinal As Integer, ByVal colunaCriterio As Integer) As Integer
    Dim linhasOcultadas As Integer
    Dim i As Integer
    linhasOcultadas = 0
    With ActiveWorkbook.Worksheets(nomePlanilha)
        i = linhaInicial
        While i <= linhaFinal
            If IsEmpty(.Cells(i, colunaCriterio).Value) Then
                .Cells(i, colunaCriterio).Rows.Hidden = True
                linhasOcultadas = linhasOcultadas + 1
            End If
            i = i + 1
        Wend
    End With
    OcultaLinhasPorCriterio = linhasOcultadas
End Function

Em míudos:

nomePlanilha é o nome da planilha sobre a qual a macro atuará
linhaInicial é o número da linha pela qual a macro comecará a avaliar.
linhaFinal é o número da linha até a qual a macro fará a avaliação
colunaCriterio é o índice numérico da coluna na qual a macro fará o teste do valor vazio.

A macro abaixo faz a chamada a função apontadando para a panilha de nome “Plan1” avaliando a coluna de índice 5 (E) percorrendo até a última linha ocupada:

Sub OcultarLinhasEmBranco()
    MsgBox OcultaLinhasPorCriterio("Plan1", 2, ActiveSheet.UsedRange.Rows.Count, 5) & " linhas ocultadas"
End Sub

Bom proveito!

Comentários

comentários