Protección de multiples hojas

27/12/2005 - 01:20 por Racso | Informe spam
Tengo un libro con 17 hojas y en cada pagina tengo iguales columnas que se
ocultan y se muestran con botones de mi barra de herramientas personalizada.
Cuando le doy protección a las hojas (que incluye una contraseña y
deshabilitación de'seleccionar celdas protegidas') mi boton-macro-mostrar
columnas me pide la contraseña (que es lógico) pero al ocultar las columnas
con mi boton-macro ocultarcolumnas se deshabilita la contarseña y se vuelve a
habilitar 'selección de celdas protegidas' aunque la hoja actual (celdas)
queda protegida.

Mis macros de ocultar y mostrar las columnas son :

Sub MostrarColumnasAreas()
ActiveSheet.Unprotect
Columns("E:AD").Select
Selection.EntireColumn.Hidden = False
ActiveCell.CurrentRegion.Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True _
, AllowFormattingColumns:=True
End Sub

Sub MostrarColumnasAreas()
ActiveSheet.Protect
Columns("E:AD").Select
Selection.EntireColumn.Hidden = False
ActiveCell.CurrentRegion.Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True _
, AllowFormattingColumns:=True
End Sub
Como puedo hacer mediante codigo en mis macros para que cada vez que uso mis
botones de ocultar o mostrar no se 'pierda' la contraseña y quede
deshabilitado 'seleccion de celdas protegidas' ?

Preguntas similare

Leer las respuestas

#1 KL
27/12/2005 - 01:56 | Informe spam
Hola Racso,

Tendras que incluir tu contrasena en el codigo.

Opcion 1: Tus macros modificadas.

'en un modulo estandar
Const clave = "abracadabra"

Sub MostrarColumnasAreas()
With ActiveSheet
.Unprotect clave
.Columns("E:AD").Hidden = False
.Protect clave, , , , False
End With
End Sub

Sub OcultarColumnasAreas()
With ActiveSheet
.Unprotect clave
.Columns("E:AD").Hidden = True
.Protect clave, , , , False
End With
End Sub
'en un modulo estandar

Opcion 2. Usando el evento Workbook_Open y el parametro UserInterfaceOnly del metodo Protect:

'en el modulo ThisWorkbook (EsteLibro)
Private Sub Workbook_Open()
Worksheets("Hoja3").Protect _
password:="abracadabra", _
UserInterfaceOnly:=True
End Sub
'en el modulo ThisWorkbook (EsteLibro)

'en un modulo estandar
Sub MostrarColumnasAreas()
ActiveSheet.Columns("E:AD").Hidden = False
End Sub

Sub OcultarColumnasAreas()
ActiveSheet.Columns("E:AD").Hidden = True
End Sub
'en un modulo estandar


Saludos,
KL


"Racso" wrote in message news:
Tengo un libro con 17 hojas y en cada pagina tengo iguales columnas que se
ocultan y se muestran con botones de mi barra de herramientas personalizada.
Cuando le doy protección a las hojas (que incluye una contraseña y
deshabilitación de'seleccionar celdas protegidas') mi boton-macro-mostrar
columnas me pide la contraseña (que es lógico) pero al ocultar las columnas
con mi boton-macro ocultarcolumnas se deshabilita la contarseña y se vuelve a
habilitar 'selección de celdas protegidas' aunque la hoja actual (celdas)
queda protegida.

Mis macros de ocultar y mostrar las columnas son :

Sub MostrarColumnasAreas()
ActiveSheet.Unprotect
Columns("E:AD").Select
Selection.EntireColumn.Hidden = False
ActiveCell.CurrentRegion.Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True _
, AllowFormattingColumns:=True
End Sub

Sub MostrarColumnasAreas()
ActiveSheet.Protect
Columns("E:AD").Select
Selection.EntireColumn.Hidden = False
ActiveCell.CurrentRegion.Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True _
, AllowFormattingColumns:=True
End Sub
Como puedo hacer mediante codigo en mis macros para que cada vez que uso mis
botones de ocultar o mostrar no se 'pierda' la contraseña y quede
deshabilitado 'seleccion de celdas protegidas' ?


Respuesta Responder a este mensaje
#2 Racso
29/12/2005 - 20:51 | Informe spam
Hola KL,
Primero, gracias por tu ayuda. La segunda opción es la que mejor funciona
para mis requerimientos.
Tengo una consulta más, : Cual es la función del argumento/método
"UserInterfaceOnly:=True" ?
No logro entender bien cómo funciona . . .

Ah!, quiero mencionarte mis sinceros deseos : que la navidad haya hecho
renacer la fe y esperanza en tu hogar y que el año próximo traiga nuevas
oportunidades para tus proyectos.

Slds

Oscar Menacho
Lima - Perú

"KL" escribió:

Hola Racso,

Tendras que incluir tu contrasena en el codigo.

Opcion 1: Tus macros modificadas.

'en un modulo estandar
Const clave = "abracadabra"

Sub MostrarColumnasAreas()
With ActiveSheet
.Unprotect clave
.Columns("E:AD").Hidden = False
.Protect clave, , , , False
End With
End Sub

Sub OcultarColumnasAreas()
With ActiveSheet
.Unprotect clave
.Columns("E:AD").Hidden = True
.Protect clave, , , , False
End With
End Sub
'en un modulo estandar

Opcion 2. Usando el evento Workbook_Open y el parametro UserInterfaceOnly del metodo Protect:

'en el modulo ThisWorkbook (EsteLibro)
Private Sub Workbook_Open()
Worksheets("Hoja3").Protect _
password:="abracadabra", _
UserInterfaceOnly:=True
End Sub
'en el modulo ThisWorkbook (EsteLibro)

'en un modulo estandar
Sub MostrarColumnasAreas()
ActiveSheet.Columns("E:AD").Hidden = False
End Sub

Sub OcultarColumnasAreas()
ActiveSheet.Columns("E:AD").Hidden = True
End Sub
'en un modulo estandar


Saludos,
KL


"Racso" wrote in message news:
> Tengo un libro con 17 hojas y en cada pagina tengo iguales columnas que se
> ocultan y se muestran con botones de mi barra de herramientas personalizada.
> Cuando le doy protección a las hojas (que incluye una contraseña y
> deshabilitación de'seleccionar celdas protegidas') mi boton-macro-mostrar
> columnas me pide la contraseña (que es lógico) pero al ocultar las columnas
> con mi boton-macro ocultarcolumnas se deshabilita la contarseña y se vuelve a
> habilitar 'selección de celdas protegidas' aunque la hoja actual (celdas)
> queda protegida.
>
> Mis macros de ocultar y mostrar las columnas son :
>
> Sub MostrarColumnasAreas()
> ActiveSheet.Unprotect
> Columns("E:AD").Select
> Selection.EntireColumn.Hidden = False
> ActiveCell.CurrentRegion.Select
> ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
> Scenarios:=True _
> , AllowFormattingColumns:=True
> End Sub
>
> Sub MostrarColumnasAreas()
> ActiveSheet.Protect
> Columns("E:AD").Select
> Selection.EntireColumn.Hidden = False
> ActiveCell.CurrentRegion.Select
> ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
> Scenarios:=True _
> , AllowFormattingColumns:=True
> End Sub
> Como puedo hacer mediante codigo en mis macros para que cada vez que uso mis
> botones de ocultar o mostrar no se 'pierda' la contraseña y quede
> deshabilitado 'seleccion de celdas protegidas' ?
>
>


Respuesta Responder a este mensaje
#3 KL
29/12/2005 - 21:19 | Informe spam
Hola Racso,

Cual es la función del argumento/método
"UserInterfaceOnly:=True" ?



Este argumento hace que sea posible manejar los objetos de la hoja mediante macros como si no estuvieran protegidos mientras que de
cara al usuario sigue protegida.

Saludos,
KL
Respuesta Responder a este mensaje
#4 Racso
29/12/2005 - 22:12 | Informe spam
Hola KL,

Va muy bien tu ayuda . . .
pero tengo otro boton en mi barra de herramientas que tiene la macro
indicada mas abajo. El fin de esta macro es seleccionar dentro de un rango
fijo las primeras filas con datos y ordenarlas de mayor a menor segun la
columna/celda CJ18
El problema es que no es posible seleccionar el rango que se va a ordenar.
Que esta mal en esta macro?
Sub Ordenar0101()
Dim Rng As Range
Set Rng = Application.InputBox(prompt:="SELECCIONE EL RANGO A ORDENAR -
EL RANGO DEBE INCLUIR LA FILA DE TITULOS Y LA ULTIMA FILA CON DATOS", Type:=8)
Rng.Select
Selection.Sort Key1:=Range("CJ18"), Order1:=xlDescending,
Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("CJ16").Select
End Sub

Gracias otra vez

Oscar Menacho
Lima-Perú


"KL" escribió:

Hola Racso,

> Cual es la función del argumento/método
> "UserInterfaceOnly:=True" ?

Este argumento hace que sea posible manejar los objetos de la hoja mediante macros como si no estuvieran protegidos mientras que de
cara al usuario sigue protegida.

Saludos,
KL


Respuesta Responder a este mensaje
#5 Racso
29/12/2005 - 22:33 | Informe spam
KL,
Disculpa la confianza . . . tengo otra consulta . . .
Cómo puedo hacer para que algunas macros funcionen solo en la 'hoja1' y
otras desde la 'hoja2' hasta la 'hoja17' ?




"Racso" escribió:

Hola KL,

Va muy bien tu ayuda . . .
pero tengo otro boton en mi barra de herramientas que tiene la macro
indicada mas abajo. El fin de esta macro es seleccionar dentro de un rango
fijo las primeras filas con datos y ordenarlas de mayor a menor segun la
columna/celda CJ18
El problema es que no es posible seleccionar el rango que se va a ordenar.
Que esta mal en esta macro?
Sub Ordenar0101()
Dim Rng As Range
Set Rng = Application.InputBox(prompt:="SELECCIONE EL RANGO A ORDENAR -
EL RANGO DEBE INCLUIR LA FILA DE TITULOS Y LA ULTIMA FILA CON DATOS", Type:=8)
Rng.Select
Selection.Sort Key1:=Range("CJ18"), Order1:=xlDescending,
Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("CJ16").Select
End Sub

Gracias otra vez

Oscar Menacho
Lima-Perú


"KL" escribió:

> Hola Racso,
>
> > Cual es la función del argumento/método
> > "UserInterfaceOnly:=True" ?
>
> Este argumento hace que sea posible manejar los objetos de la hoja mediante macros como si no estuvieran protegidos mientras que de
> cara al usuario sigue protegida.
>
> Saludos,
> KL
>
>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida