Como ocultar columnas vacías al aplicar filtros

Me podrías ayudar con Como ocultar columnas vacías Pero que funcione también al aplicar filtros, tengo una macro que hace esto pero cuando aplico filtros no oculta las columna.

Necesito ocultar columnas de un rango cuando estén vacías.

Mi rango de datos es Q3:ABT3003

Adjunto fotos para que vean lo que necesito, de ante mano estaré agradecido por la ayuda que me puedan brindar

2 Respuestas

Respuesta
1

Ya con tu macro seleccionando las columnas, prueba las líneas siguientes:

Columns("A:B").Select
Selection.EntireColumn.Hidden = True

Donde COLUMNS("A:B"). Select, son las columnas que necesitas ocultar. Si no es lo que necesitas, coloca las lineas que tienes para verificar y ayudarte mejor.

Respuesta

Dentro de tu misma macro de filtro, podrás ejecutar el código que evalúa cuáles son las columnas vacías, con esta instrucción:

Call ocultaColumnasFiltradas

Sub ocultaColumnasFiltradas()
'x Elsamatilde
filx = Range("B" & Rows.Count).End(xlUp).Row      'fila final luego del filtro
colx = Range("BB3").End(xlToLeft).Column          'cant de columnas que ocupa el rango
'se recorren todas las col luego del filtro, utilizando la función SUBTOTALES
For i = 1 To colx
    If Application.WorksheetFunction.Subtotal(3, Range(Cells(4, i), Cells(filx, i))) = 0 Then
        Cells(1, i).EntireColumn.Hidden = True
    End If
Next i
End Sub

Como no se observa que se trate de un formato Tabla, utilicé estas instrucciones seguras para obtener fin de rango:

* la col B se toma para evaluar el fin de rango filtrado

* la fila 3 se evalúa para conocer la cantidad de columnas que tiene la tabla.

La macro fue desarrollada para este modelo. Ajustá las referencias al tuyo.

Otro modo de encontrar fin de rango, en caso de trabajar con Tabla:

[B3].Select
filx = ActiveCell.CurrentRegion.Rows.Count
colx = ActiveCell.CurrentRegion.Columns.Count

Más ejemplos y el paso a paso en el video Nº 30 de mi canal: CurrentRegion ...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas