Macro ocultar columnas según condición fila

Tengo una hoja excel con unas 300 columnas
Necesito ocultar determinadas columnas en función de la condición que hay en la fila 2.
Es decir cada columna en la fila 2 habrá (A o B o C o D).
Me interesa que cuando aplique la macro se oculten las columnas excepto todas las que tienen en fila 2 "A" o "B" etc.

1 Respuesta

Respuesta
1
Como no sé como pones el dato para que se oculten todas las columnas excepto las que tu quieres, he supuesto que el valor que quieres visible, lo pones en la celda A1.
En la hoja donde quieres que se ejecute, pulsa ALT+f11 y escribes esto:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub ' si la celda que se ha modificado es distinto a la A1 entonces sal de la macro
Dim N As Integer
Columns("B:AD").EntireColumn.Hidden = False 'primero las hago todas visibles
If Range("A1") <> "" Then ' si en la celda A1 hay algo escrito
    For N = 2 To 30 ' N va ha valer desde 2 hasta 30
        If Cells(2, N) <> Range("a1") Then Cells(2, N).EntireColumn.Hidden = True ' si la celda Fila 2 y columna n es igual a la celda A1 entonces ocultala
    Next N
End If
End Sub
Con esto cuando modifiques la celda a1 se ocultaran todas las columnas de la 2 a la 30 ( tu adáptalo a las columnas que tengas) que no sean igual a la celda A1. O si en la celda A1 no pones nada se verán todas las columnas.
Pruébalo y me cuentas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas