Excel - alguma maneira de ocultar automaticamente colunas vazias ao filtrar linhas?

1

Estou trabalhando com dados importados de um banco de dados do NOSQL.

Às vezes, consigo planilhas com 1.000 colunas e até onde a maioria das células não tem dados.

Estou procurando uma maneira que, quando eu filtrar os dados e mostrar apenas linhas específicas, todas as colunas das linhas visíveis que não têm dados serão ocultadas automaticamente.

Dessa forma, não precisarei rolar horizontalmente centenas de colunas vazias em busca de informações.

Se você tiver uma solução para essa necessidade, serei grato.

Obrigado,

Hanan Cohen

    
por Hanan Cohen 07.03.2018 / 15:31

2 respostas

1

Este código ocultará as colunas se apenas a célula do cabeçalho estiver preenchida:

Sub KolumnHider()
    Dim wf As WorksheetFunction
    Dim i As Long, r As Range

    Set wf = Application.WorksheetFunction
    For i = 1 To 1000
        Set r = Cells(1, i).EntireColumn
        If wf.CountA(r) < 2 Then r.Hidden = True
    Next i
End Sub

Se não houver cabeçalhos de coluna, faça o 2 em 1 .

    
por 07.03.2018 / 16:04
0

Este código do VBA ocultará todas as colunas em branco, independentemente de terem ou não um cabeçalho.

Private Sub CommandButton1_Click()

  Dim rng As Range
  Dim nLastRow As Long
  Dim nLastColumn As Integer
  Dim i As Integer
  Dim HideIt As Boolean
  Dim j As Long

  Set rng = ActiveSheet.UsedRange
  nLastRow = rng.Rows.Count + rng.Row - 1
  nLastColumn = rng.Columns.Count + rng.Column - 1

  For i = 1 To nLastColumn
     HideIt = True

  For j = 2 To nLastRow

    If Cells(j, i).Value <> "" Then
      HideIt = False
    End If
  Next

    If HideIt = True Then
      Columns(i).EntireColumn.Hidden = True
    End If
  Next

End Sub

Notas:

  • Se você estiver usando um comando de filtro padrão no menu para filtrar os registros, execute este código primeiro e depois filtre.
  • Se você estiver usando o código VBA para filtrar os registros, chame essa sub-rotina primeiro dentro do seu código. Nesse caso, seria melhor substituir "CommandButton1_Click" com outro nome, talvez "Private Sub HideBlankColumn () ".

    
por 07.03.2018 / 17:12