Proteccion

28/01/2009 - 19:14 por Lazar | Informe spam
Hola
Tengo un archivo Excel con 100 hojas, todas están protegidas y con password.
Para facilitarme el acceso a las posibles modificaciones hice dos macros de
protección y desprotección para todo el conjunto de hojas tal que :

Sub Desproteger()
For Each ws In Worksheets
Sheets(ws.Name).Select
ActiveSheet.Unprotect ("ElPassword")
Next ws
End Sub

Sub Proteger()
For Each ws In Worksheets
Sheets(ws.Name).Select
ActiveSheet.Protect Password:="ElPassword", DrawingObjects:=True,
Contents:=True, Scenarios:=True
Next ws
End Sub


El código esta protegido con contraseña

Ambas macros las activo con una combinación de teclas que supongo será
difícil averiguar para el usuario normal, pero lo que no se evitar es que
abran Herramientas - Macros y desde allí las ejecuten por lo que toda la
seguridad ya precaria de por si se viene abajo, ¿ alguna sugerencia ?

Gracias
Saludos
Ramón




begin 666 Ramon.vcf
M0D5'24XZ5D-!4D0-"E9%4E-)3TXZ,BXQ#0I..CM286UO;CM0:6-O#0I&3CI2
M86UO;@T*14U!24P[4%)%1CM)3E1%4DY%5#IR<&EC;VQR87)R;V)A=&5L969O
M;FEC87!U;G1O;F5T#0I2158Z,C P.3 Q,CA4,3@Q-# Y6@T*14Y$.E9#05)$
"#0H`
`
end

Preguntas similare

Leer las respuestas

#1 Lazar
28/01/2009 - 20:14 | Informe spam
Me contesto a mi mismo
Lo que hago es proteger la macro de desprotección con contraseña de forma
que :

Dim Mensaje, Título, ValorPred, MiValor
Mensaje = " Introduzca la Contraseña" ' Establece el mensaje.
Título = "Desproteger hojas" ' Establece el título.
MiValor = InputBox(Mensaje, Título)

If MiValor = "ElPassword" Then
For Each ws In Worksheets
Sheets(ws.Name).Select
ActiveSheet.Unprotect ("ElPassword")
Next ws
Else
MsgBox " Contraseña erronea, vuelva a intentarlo"
End If


Pero... en el InputBox no aparecen los típicos * de las contraseñas , se ve
lo que se escribe, ¿ es posible solucionarlo ?

Gracias

Saludos
Ramón



"Lazar" escribió en el mensaje
news:
Hola
Tengo un archivo Excel con 100 hojas, todas están protegidas y con
password. Para facilitarme el acceso a las posibles modificaciones hice
dos macros de protección y desprotección para todo el conjunto de hojas
tal que :

Sub Desproteger()
For Each ws In Worksheets
Sheets(ws.Name).Select
ActiveSheet.Unprotect ("ElPassword")
Next ws
End Sub

Sub Proteger()
For Each ws In Worksheets
Sheets(ws.Name).Select
ActiveSheet.Protect Password:="ElPassword", DrawingObjects:=True,
Contents:=True, Scenarios:=True
Next ws
End Sub


El código esta protegido con contraseña

Ambas macros las activo con una combinación de teclas que supongo será
difícil averiguar para el usuario normal, pero lo que no se evitar es que
abran Herramientas - Macros y desde allí las ejecuten por lo que toda la
seguridad ya precaria de por si se viene abajo, ¿ alguna sugerencia ?

Gracias
Saludos
Ramón





Respuesta Responder a este mensaje
#2 Héctor Miguel
29/01/2009 - 04:12 | Informe spam
hola, Ramón !

op1: poner al principio del modulo donde tienes las macros la instruccion: -> Option Private Module

op2: usar un argumento "opcional" (obviamente SIN proveerlo) en cada procedimiento (p.e.)
Sub Desproteger(Optional Nada As String = "")

con cualquiera de las opciones anteriores las macros NO se muestran al usuario ;)

para poner asteriscos al solicitar una clave, necesitas disenar un formulario de usuario
revisa el siguiente articulo (y descarga un ejemplo):
-> Contraseña Formularios Excel
http://www.teladearana.es/seccion/e...2-h15.html

saludos,
hector.

__ OP __
... 100 hojas... protegidas y con password hice dos macros... para todo el conjunto de hojas tal que:
Sub Desproteger()
For Each ws In Worksheets
Sheets(ws.Name).Select
ActiveSheet.Unprotect ("ElPassword")
Next ws
End Sub
Sub Proteger()
For Each ws In Worksheets
Sheets(ws.Name).Select
ActiveSheet.Protect Password:="ElPassword", DrawingObjects:=True, Contents:=True, Scenarios:=True
Next ws
End Sub
El codigo esta protegido con contrasena
... las activo con una combinacion de teclas que supongo sera difícil averiguar para el usuario normal
pero lo que no se evitar es que abran Herramientas - Macros y desde alli las ejecuten
por lo que toda la seguridad ya precaria de por si se viene abajo, alguna sugerencia ?
Respuesta Responder a este mensaje
#3 Lazar
29/01/2009 - 19:49 | Informe spam
Gracias Héctor

Saludos
Ramón



"Héctor Miguel" escribió en el mensaje
news:
hola, Ramón !

op1: poner al principio del modulo donde tienes las macros la
instruccion: -> Option Private Module

op2: usar un argumento "opcional" (obviamente SIN proveerlo) en cada
procedimiento (p.e.)
Sub Desproteger(Optional Nada As String = "")

con cualquiera de las opciones anteriores las macros NO se muestran al
usuario ;)

para poner asteriscos al solicitar una clave, necesitas disenar un
formulario de usuario
revisa el siguiente articulo (y descarga un ejemplo):
-> Contraseña Formularios Excel
http://www.teladearana.es/seccion/e...2-h15.html

saludos,
hector.

__ OP __
... 100 hojas... protegidas y con password hice dos macros... para
todo el conjunto de hojas tal que:
Sub Desproteger()
For Each ws In Worksheets
Sheets(ws.Name).Select
ActiveSheet.Unprotect ("ElPassword")
Next ws
End Sub
Sub Proteger()
For Each ws In Worksheets
Sheets(ws.Name).Select
ActiveSheet.Protect Password:="ElPassword", DrawingObjects:=True,
Contents:=True, Scenarios:=True
Next ws
End Sub
El codigo esta protegido con contrasena
... las activo con una combinacion de teclas que supongo sera difícil
averiguar para el usuario normal
pero lo que no se evitar es que abran Herramientas - Macros y desde alli
las ejecuten
por lo que toda la seguridad ya precaria de por si se viene abajo, alguna
sugerencia ?





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida