Proteger/Desproteger Proyecto VBA mediante codigo

01/12/2004 - 14:09 por Jose Maria Exposito | Informe spam
Buenas...

tengo unas macros de Excel hechas y me gustaria saber como puedo
Proteger/Desproteger Proyecto VBA mediante codigo.

lo unico que he logrado hacer es proteger la hoja haciendo un sendkeys:

Application.SendKeys "%{F11}^r%hp^{PgDn}{+}{Tab}" _
& "mipassword" & "{Tab}" & _
"mipassword" & "{Enter}%q"

pero lo he intentado a la inversa y no ha funcionado.

salu2

JMER
 

Leer las respuestas

#1 Héctor Miguel
01/12/2004 - 22:27 | Informe spam
hola, Jose Maria !

... saber como puedo Proteger/Desproteger Proyecto VBA mediante codigo.
... he logrado ... proteger la hoja haciendo un sendkeys:
Application.SendKeys "%{F11}^r%hp^{PgDn}{+}{Tab}" _
& "mipassword" & "{Tab}" & _
"mipassword" & "{Enter}%q"
... he intentado a la inversa y no ha funcionado.



1° es necesario 'tener en cuenta' que al 'enviar' un sendkeys al proyecto de macros...
[por omision] se esta 'afectando' ->al libro 'activo'<- [en la interfase de hojas de calculo]
2° 'advertidos' de lo anterior, para estar 'en condiciones' de quitar passwords al vba de 'X' libro...
[usando tambien el metodo sendkeys] nos 'tendremos que' asegurar de...
- abrir el editor vba...
- cerrar TODA 'instancia' de modulo abierto...
- cerrar el editor de vba
- 'activar' el libro 'apropiado'
3° NO 'olvidar' que, una vez 'desprotegido' un proyecto vba... ->seguira SIN password<- [en la sesion]
aun re-protegiendolo, sera indispensable cerrarlo y abrirlo de nuevo para que 'se active' la re-proteccion <= OJO

te pongo unos ejemplos en seguida...
saludos,
hector.
en un modulo de codigo 'normal' ==Sub Quitar_PassWord_VBA()
Application.SendKeys "%{f11}{l 4}%q", True
Workbooks("Libro X").Activate
Application.SendKeys "%{f11}^r{down}AquiTuPassWoRd~%q", True
End Sub
Sub Poner_PassWord_VBA()
Workbooks("Libro X").Activate
Application.SendKeys "%{f11}^r%hp^{pgdn}{+}{tab}AquiTuPassWoRd{tab}AquiTuPassWoRd~%q"
' la siguiente linea es ->opcional<-, puedes NO cerrarlo, pero... seguira SIN password :(
Workbooks("Libro X").Close True
End Sub

Preguntas similares