Excel_Macro Ocultar columnas según condición

Soy un usuario bastante inexperto en el tema de las macros y me ha surgido un problemilla que no consigo solucionar, os explico, tengo un libro con tres hojas, en la primera hoja (datos de partida) hay una especie de formulario con listas desplegables vinculadas a una tercera hoja.
En la segunda hoja está el "Presupuesto NPV" que se calcula a partir de fórmulas según los datos elegidos de la primera hoja, pues bien, en esta hoja (Presupuesto NPV), quiero ocultar ciertas columnas en función del valor de la celda "g10" de la tercera hoja ("Ref") :
Si g10= 1 se tendrán que ocultar las columnas f, g y h de Presupuesto NPV
Si g10= 2 se tendrán que ocultar las columnas g y h de Presupuesto NPV
Si g10= 3 se tendrán que ocultar las columnas f y h de Presupuesto NPV
Si g10= 4 se tendrán que ocultar las columnas f y g de Presupuesto NPV
He comenzado únicamente con la primera condición añadiendo en la macro que tengo lo siguiente y ya me da error:
'Ocultar columnas en función del proveedor "Presupuesto NPV"
Sheets("Presupuesto NPV").Select
If [ref!g10] = 1 Then
Columns("F:H").Select
Selection.EntireColumn.Hidden = True
End if
El error que sale es 1004 "no se puede asignar la propiedad hidden de la clase Range"
Por favor, ¿podríais ayudarme a resolverlo?

1 respuesta

Respuesta
1
Este es un ejemplo
Sub oculta()
If Range("G10") = 1 Then
Range("F:H").Select
Selection.EntireColumn.Hidden = True
End If
End Sub
Primero muchísimas gracias por tu respuesta, pero me surge una duda, la celda G10 está en la hoja "Ref" y las columnas que quiero ocultar f, g y h están en otra hoja llamada "Presupuesto NPV" en el ejemplo que me has puesto no se hace ninguna referencia al nombre de las hojas.
Luego entiendo por tanto que este ejemplo serviría si todo estuviese en la misma hoja, ¿no?
Me podrías ayudar en el caso de que estuviesen en hojas distintas, tal y como te he comentado.
De nuevo, gracias.
Un saludo.
OK
Entonces Así
Sub oculta()
If Worksheets("Ref").Range("G10") = 1 Then
Range("F:H").Select
Selection.EntireColumn.Hidden = True
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas