Duda excel - macro protegida

Tengo la siguiente macro de Excel para ocultar columnas, pero a la hora de proteger la hoja me da el siguiente error, esta macro la repito 18 veces en la misma hoja-excel modificando en cada modulo las columnas que debo ocultar, mensaje error:

"no se puede asignar la propiedad hidden de la clase range"

Necesito proteger la hoja en cuestión por motivos laborales existe alguna forma para poder proteger la hoja metiendo algún tipo de código basic en mi macro.

Muchas gracias, saludos a la buena gente de esta web.

CÓDIGO MACRO:

Sub TOLEDO()
'Seleccionamos las columnas a ocultar
Range("F:F,G:G,H:H,I:I,J:J,QUE:K,L:L,M:M,N:N,O:O,P:P,QUE:Q,R:R,T:T,U:U,V:V,W:W,X:X,Y:Y").Select
'Ocultamos Columnas
Selection.EntireColumn.Hidden = True
'Nos situamos en A2
Range("A2").Select
End Sub

2 Respuestas

Respuesta
1

Si lo que quieres es ocultar desde la columna F a la Y utiliza este código:

Sub columnas()

Columns("F:Y").Select

Selection.EntireColumn.Hidden = True

Range("A1").Select

End Sub

Para proteger una macro con contraseña tienes que hacer lo siguiente:

Sitúate en el editor de Visual Basic y en el menú Herramientas elige la opción:

Propiedades de VBaproject. Ahí verás una pestaña para la protección con contraseña.

Finaliza y puntúa

Buenas noches tocayo, no es eso lo que busco, las columnas ya las tengo ocultas y el basic lo tengo protegido con contraseña para que no se pueda visualizar el código, lo que necesito es que una vez que protejo la hoja no el libro, me sale el error que indico en mi pregunta, entonces necesito una solución para que no me de ese error y pueda proteger la hoja de calculo y solo se puedan manejar los 18 botones que realizan la función de ocultar columnas en mi excel, este error me sale con la hoja protegida.

Aviso : "NO SE PUEDE ASIGNAR LA PROPIEDAD HIDDEN DE LA CLASE RANGE".

Muchas gracias por su atención, espero me puedan ayudar.

Entonces tienes que desproteger y proteger mediante macro. Mi ejemplo quedaría así:

En vez de "contraseña" pones la tuya.

Sub columnas()

activesheet.unprotect password:= "contraseña"

Columns("F:Y").Select
Selection.EntireColumn.Hidden = True
Range("A1").Select

activesheet.protect password:="contraseña"
End Sub

Muchas gracias, con el código que me has facilitado he logrado que la aplicación excel que estoy desarrollando sea efectiva, un saludo.

Respuesta

Si a alguien le sirve: En mi caso (Excel 2007) si quiero ocultar columnas que tienen COMENTARIOS, me daba error. Quite los comentarios y funcionó.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas