Gracias Greg por el apoyo.
no cabe duda que nunca se termina de aprender algo.
Saludos.
This is a discussion on Programar un botón para quitar la contraseña del proyecto within the Questions in Other Languages forums, part of the Question Forums category; UliCs me mandó el siguiente mensaje el otro día. Pide el permiso de él para compartir su mensaje públicamente porque ...
UliCs me mandó el siguiente mensaje el otro día. Pide el permiso de él para compartir su mensaje públicamente porque creo que puede ser útil para otros lectores.
Que tal Greg. Buenas Noches.
te envio este mensaje privado porque entiendo que la pregunta que te voy a hacer no es muy bien vista por algunos.
No soy muy bueno en la programación de macros como tu pero aun así hago mi lucha tengo varios archivos con macros y a algunos de ellos le he puesto contraseña en el VBAProject. Tengo la inquietud de sabes si puedo asignar una macro a un botón para que proteja o desproteja mi VBAProject. ¿Puedes tu ayudarme? Por favor.
Mi respuesta es así:
No hay nada malo en esta pregunta en el sentido que UliCs no está preguntando cómo quebrar una contraseña. Él está preguntando algo muy diferente que es cómo aplicar una contraseña automáticamente. Puede ser que exista alguna manera más confiable desarrollando algo externo que sea compilado y agregado a Excel – algo en Visual Studio (Visual Basic o C por ejemplo). Pero si hablamos únicamente de los recursos normales de VBA – no hay una manera muy confiable. Sería necesario usar SendKeys que es una herramienta poco fiable.
Una sugerencia que daría a todos quienes ponen contraseñas a proyecto VBA o al cuaderno en sí, es utilizar las propiedades del documento para poner una pista sobre la contraseña puesto. Algo como «segundo nombre de abuelo» o «color de mi primer perro»; poniéndola en comments o keywords. Y así cuando uno está en Windows Explorer, y pone el cursor sobre el nombre del archivo, su pista aparecerá en la ventanilla.
Greg
………………………………………………
Work: XL 2003, 2007 and 2010 on Windows 7
Please use CODE tags - especially for longer excerpts of code.
Gracias Greg por el apoyo.
no cabe duda que nunca se termina de aprender algo.
Saludos.
otra manera que puedes lograrlo es con el siguiente código:
la macro que hará el trabajo:Code:Sub desprotege() UnprotectVBProj ("stprotege") MsgBox "VBE desprotegido" End Sub
de esta manera solo tines que asignar aun "Botón" la macro "desprotege" o mediante alguna combinacion de teclas para ejecutar y con ello te puedes olvidar de la contraseña ya que solo sera necesario ejecutar la macro para que te deproteja el VBEditor.Code:Sub UnprotectVBProj(ByVal Pwd As String) 'http://www.tek-tips.com/viewthread.cfm?qid=1589742&page=8 Dim vbProj As Object Set vbProj = ThisWorkbook.VBProject If vbProj.Protection <> 1 Then Exit Sub ' already unprotected Set Application.VBE.ActiveVBProject = vbProj SendKeys Pwd & "~~" Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute End Sub
recalcar que este es un metodo 'eminentemente' preventivo ya que como se observa no requiere 'quebrar' absolutamente nada,por lo que no infringe/viola ninguna disposicion legal o moral.
nota.-probado exitosamente en excel 2003![]()
ST, en lo que escribí en enero, mencioné el hecho de que sí es posible hacer eso con SendKeys.La cosa es que nunca recomiendo el uso de SendKeys por ser un método de poca confianza.
Aquí, si falla no habrá daño. Pero hay otros casos donde la gente sí ha usado SendKeys en situaciones donde cuando falla habrá consecuencias muy serias. Fue por eso que no di un ejemplo a UliCs, no por no saber cómo hacerlo. Sin embargo no voy a suprimir su post en caso de que alguien decide probarlo.
Pero bajo ninguna circumstancia usaría yo SendKeys para poner una contraseña.
Porque si por algún milagro falla dos veces identicamente sería un problema muy grande tratar de adivinar cómo falló para descubrir la contraseña que puso mal.
Last edited by Greg Truby; Aug 11th, 2010 at 03:11 PM.
Greg
………………………………………………
Work: XL 2003, 2007 and 2010 on Windows 7
Please use CODE tags - especially for longer excerpts of code.
Muchas Gracias.
si funciono jeje
saludos.
ok Greg:
tomo nota de tus comentarios y gracias por la gentileza dal dejar mi participación
por demas decirte que en las veces que me atreví a usar sendkeys noté lo que ya comentas y si me atreví a sugerir fue por que tras diversas pruebas note que 'podia' tener cierto rango de 'confianza',lo cual no significa que no se deba tener precaucion para 'adaptar' la macro a los diferentes idiomas ya que las teclas pueden variar
Con mucho gusto.Hablando en serio, favor sepa que ayuda siempre está bienvenido aquí. Solo hay que tomar en cuenta que las sugerencias que uno da serán leidos por mucha gente de todos niveles de capacitación y por muchos años. En las manos de alguien con suficiente experiencia, SendKeys sí puede resultar útil siempre y cuando el programador se da cuenta de las limitaciones del método. En las manos de un novato es una amenaza.
Greg
………………………………………………
Work: XL 2003, 2007 and 2010 on Windows 7
Please use CODE tags - especially for longer excerpts of code.
Bookmarks