¿Cómo comprobar si la contraseña de desproteger de un file Excel es correcta con vba?

Estoy intentando bloquear y desbloquear un file Excel con VBA. Bloqueo el file en el código con una contraseña pnetworkingeterminada y le doy esta contraseña al usuario en otro file. Siempre es la misma contraseña, así que no es necesario que la ingrese el usuario. Le doy el file bloqueado al principio.

Mi problema es que quiero que el usuario ingrese una contraseña en un formulario para desbloquear el file y no sé cómo comprobar si la contraseña ingresada por el usuario es correcta antes de llamar a la function Desproteger.

Tengo un sub como este:

Sub Unlock (Pass as String) for i=1 to Sheets.Count Sheets(i).Unprotect Password:=Pass next i end Sub 

Si codigo esto y la contraseña es correcta, todo está bien, pero si el usuario comete un error, VBA da un post de error fuera del control del usuario. Quiero verificar el código de la contraseña antes de llamar desproteger y si está mal, mostrar un msgbox y dejar que el usuario ingrese una nueva contraseña nuevamente, pero no sé si existe alguna function que compruebe si la contraseña es correcta.

Creo que en una function como esta:

 Sub Unlock (Pass as String) 'if password is good for i=1 to Sheets.Count Sheets(i).Unprotect Password:=Pass next i 'else msgbox "Try again!" 'end if end Sub 

pero no tengo forma de saber "si la contraseña es buena".

¡Gracias por ayudar y disculpas por mi inglés!

Una forma es arrojar la contraseña que se le dé, y manejar la exception de acuerdo a sus necesidades. Aquí hay un enlace decente:

http://cpearson.com/excel/errorhandling.htm

Intereting Posts