Macro para ocultar columnas, dependiendo del valor en una celda especifica.

Probablemente sea sencillo, pero soy novato):

Las columnas X y Y están ocultas al abrir el archivo. En la celda J3, puedo tener valores del 1 al 4; si J3=1, las columnas X y Y deben permanecer ocultas, pero si J3 = 2, 3 ó 4, las columnas X y Y se deben mostrar automáticamente. Si J3 vuelve a cambiarse a 1, las columnas X y Y se deben volver a ocultar automáticamente.

2 respuestas

Respuesta
1

Ingresa al Editor de macros (Alt + tecla F11)

Desde el panel a tu izquierda, selecciona con doble clic el objeto HOJA donde vayas a trabajar.

Y allí copiá esto:

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamtilde
'solo controlamos la celda J3
If Target.Address <> "$J$3" Then Exit Sub
If Target.Value = 1 Then
 Range("X:Y").EntireColumn.Hidden = xlVeryHidden
Else
 Range("X:Y").EntireColumn.Hidden = False
End If
End Sub

Aquí se controla un cambio 'manual' a la celda J3.... no resultará si el cambio se dá como resultado de una fórmula. Comentame tu caso.

Excelente, muchas gracias, solo un detalle

En una de esas columnas hay un cuadro combinado... cómo puedo hacer para que se oculte también?

Aquí van las líneas que necesitas. Tenés que reemplazar el nombre del objeto por el que tenga el de tu hoja.

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamtilde
'solo controlamos la celda J3
If Target.Address <> "$J$3" Then Exit Sub
If Target.Value = 1 Then
 Range("K:L").EntireColumn.Hidden = xlVeryHidden
 ActiveSheet.Shapes.Range(Array("Drop Down 1")).visible = False
Else
 Range("K:L").EntireColumn.Hidden = False
 ActiveSheet.Shapes.Range(Array("Drop Down 1")).Visible = True
End If
End Sub

Sdos y no olvides finalizar la consulta,

Respuesta

Yo también necesito lo mismo pero en mi caso son números de 1 a 12, si aparece el 1 entonces me oculta tales columnas, si aparece el 2 oculta otras columnas y ais sucesivamente...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas