Deshacer "No cerrar formulario con X"

09/01/2008 - 15:51 por Mauricio | Informe spam
Buen Día al grupo,
Mi workbook al abrir ejecuta un formulario ...el principal a este le puse el
código para no cerrar con X
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

If CloseMode = 0 Then
Cancel = True
End If
End Sub


si alguien quiere cerrar el formulario le puse un boton de cerrar ...pero
este cierra la aplicación...Application.quit
esto como metodo de proteger que editen mi workbookahora como hago yo
cuando quiera editar-hacer cambiosdebo abrir de algún modo? debo
implementar otro metodo ?
Gracias de antemano
Mauricio
 

Leer las respuestas

#1 Ivan
09/01/2008 - 17:08 | Informe spam
hola Mauricio,

If CloseMode = 0 Then




        Cancel = True

como hago yo cuando quiera editar-hacer cambios<<<



una posibilidad seria dar la opcion de editar previa peticion/
introduccion de una clave/contraseña

a grosso modo, podria ser algo asi=>

incluyes, pej.=>

a) un textbox en el userform (para el ej. le llamaremos
'txtContraseña')

[si lo prefieres, podrias optar por diversas opciones, pej. en vez del
textbox poner un boton que llame a un inputbox o a otro formulario
diseñado para el efecto o que activara mostrara el textbox, etc]

en el caso de optar por el textbox puedes elegir un tipo de caracter
'ocultador' en su propiedad PasswordChar y un boton 'cmdEditar' para
confirmar la introduccion de la contraseña

b) a nivel de el modulo del formulario declaras una variable boolean y
si quieres controlar un nº maximo de intentos tambien una variable
tipo Byte (pej)

Dim Editando as Boolean, NroVeces as Byte

c) Declaras tambien una constante con tu contraseña y si quieres uno
con el maximo de repeticiones

Const Clave as String = "Tu_C1oNt2raS4eña"
Const Max_Intentos as Byte = 3


d) en el boton editar (o en el mismo de cerrar aunque con algunas
variaciones), que usarias tras haber introducido la clave, podrias
poner algo tipo

Private Sub cmdEdita_Click()
if txtContraseña = Clave then unload me: exit sub
NroVeces =NroVeces + 1
if nroVeces > Max_Intentos then
Msgbox "Se ha excedido el nº de intentos permitido"
Call TuBotonDeCerrar_Click
end if
End Sub

bueno, es solo por darte una idea de una posibilidad, pero ten c
uidado si intentas aplicarlo tal cual esta escrito, pues esta hecho
aqui y puede haber algun error, pero mas o menos creo que la idea se
ve por donde iria

espero te ayude

un saludo
Ivan

Preguntas similares