Ocultar intersecciones de rangos con casillas de verificación

Estoy tratando de ocultar y mostrar columnas mediante casillas de verificación. Tengo una tabla con datos de varios años mes a mes. 2018 (Enero, Febrero, Marzo...)2019 (enero, Febrero, Marzo...) 2020 ( enero, febrero Marzo...)... Y 15 casillas de verificación ( una por cada mes y por cada año). Quisiera que tan sólo los datos de las casillas marcadas se mostraran y el resto no. Es decir si marco 2019 y 2019 y los meses de enero y marzo, sólo se me muestren estos datos.

Para ello he nombrado cada checkbox con el nombre del mes y el año y he creado rangos agrupando todas las columnas con el mismo mes y todos los meses del mismo año e intento mediante intersect seleccionar la casilla visible.

No se mucho de macros ( por no decir nada) y cogiendo de aquí y de allá consultas he intentado crear lo siguiente ( repitiendo con cada combinación mes-año), pero no funciona. ¿Me podéis ayudar u orientar? Muchas gracias desde ya

Sub Selección()

Dim 2019 as range
Dim 2018 as range
Dim 2020 as range
Dim Ene As Range
Dim Feb As Range

Range ("A1:A12"): Name = "2018"
Range("A13:A24").Name = "2019"
Range("A25:A36").Name = "2020"

Range(A1, A13, A25).Name = "Ene"
Range(A2, A14, A26).Name = "Feb"
….

If ActiveSheet.Ene.Value = True And ActiveSheet.2018.Value = True Then Intersect(Range("Ene"), Range("2018")).EntireColumn.Hidden = False Else
Intersect(Range("Ene"), Range("2018")).EntireColumn.Hidden = True
If ActiveSheet.Ene.Value = True And ActiveSheet.2019.Value = True Then Intersect(Range("Ene"), Range("2019")).EntireColumn.Hidden = False Else
Intersect(Range("Ene"), Range("2019")).EntireColumn.Hidden = True
If ActiveSheet.Ene.Value = True And ActiveSheet.2020.Value = True Then Intersect(Range("Ene"), Range("2020")).EntireColumn.Hidden = False Else
Intersect(Range("Ene"), Range("2020")).EntireColumn.Hidden = True

...

End Sub

Añade tu respuesta

Haz clic para o