Olá, sei que o tópico é antigo, mas gostaria de deixar alguns códigos que encontrei na internet para ocultar e reexibir as linhas em branco que é possível estipular um intervalo para que ocorra o ocultamento, conforme um usuário perguntou. Adaptem de acordo com suas necessidades
1 Esconder todas as linhas em branco desde a linha 2 até à 65000
Sub OcultarLinha()
Dim Linha, LinhaFinal As Integer
LinhaFinal = Range("A65000").End(xlUp).Row
For Linha = 2 To LinhaFinal
If Range("A" & Linha).Value = 0 Then
Range("A" & Linha).EntireRow.Hidden = True
Else
End If
Next Linha
End Sub
2. Esconder todas as linhas, no intervalo entre a linha 4 e a linha 500, que na coluna "G"contenham células em branco ou de valor zero (processamento mais rápido que a alternativa 1)
Sub OcultarLinha()
Dim i As Integer
Application.ScreenUpdating = False
With Sheets("sumario")
.Cells.EntireRow.Hidden = False
For i = 4 To 500
Select Case .Range("g" & i).Value
Case 0
.Rows(i & ":" & i).EntireRow.Hidden = True
End Select
Next i
End With
Application.ScreenUpdating = True
End Sub
3.Activando o Filtro Automático via VBA. A intenção é esconder as linhas que na coluna 7 ("G") contenham a letra "s" (processamento mais rápido que as alternativas anteriores)
Sub OcultarLinha()
Sheets("Folha1").Select
Range("A2:G500").Select
Selection.AutoFilter
Selection.AutoFilter Field:=7, Criteria1:="s"
End Sub
Para adaptar os códigos acima para reexibir as linhas ocultas, basta mudar o último "EntireRow.Hidden = True" para "EntireRow.Hidden = False", conforme exemplo abaixo
(CÓDIGO 02 ADAPTADO) Sub ReexibirLinha()
Dim i As Integer
Application.ScreenUpdating = False
With Sheets("sumario")
.Cells.EntireRow.Hidden = False
For i = 4 To 500
Select Case .Range("g" & i).Value
Case 0
.Rows(i & ":" & i).EntireRow.Hidden = False
End Select
Next i
End With
Application.ScreenUpdating = True
End Sub
Vocês poder criar um botão para o Ocultar e outro Desocultar e, em seguida, atribua os macros correspondentes a cada botão.
FONTE